首页 > 其他分享 >Day08-字典与集合

Day08-字典与集合

时间:2023-01-30 00:55:05浏览次数:45  
标签:小明 Day08 print set dict 集合 data 字典

一、字典的应用场景

列表中有数据有多个元素,且有相应的对应关系时,使用列表不足够表示

二、字典的创建
dict_data = { key:value,key1:value1}
1,符号以大括号表示
2,数据是以键值对出现的 键值中间用冒号连接
3,key的数据必须是不可变类型,key是不重复的

定义一个空的字典

# dict_data = {}
# print(dict_data)
# print(type(dict_data))

# 定义一个有数据的字典 value可以是任意数据类型
# 字典没有索引 无序的,因为没有索引才表现出来没有顺序
# 字典可以根据key获取value
# O(1) 哈希查找

# dict_data = {'小明':20,'小芳':{'age':18,'gender':'女'}}   #如果有多个数据key相同,会将后面的覆盖前面的数据
# print(dict_data['小芳'])

三、字典的常规操作
#增加数据

# dict_data={'小明':20}
# dict_data['小芳']=18  #索引=value,增加数据的方式
# dict_data['小芳']={'age':18,'gender':'女'}
# print(dict_data)
#字典修改 当key重复的时候,后面进来的数据会覆盖前面的数据 # dict_data = {'小明':20} # dict_data['小明']={'age':18,'gender':'女'} # print(dict_data) #当数据不存在就增加 存在就修改
#数据删除 dict_data = {'小明':20} del dict_data['小明'] print(dict_data) 

# list1 =[1,2,3,4,5]
# print(dict_data.fromkeys(list1,0))  #{1: 0, 2: 0, 3: 0, 4: 0, 5: 0} #统一初始化

# print(dict_data.get('小明1')) #None
# print(dict_data.get('小明1',False)) #False
# print(dict_data.get('小明1',-1))  # -1

# 获取一个数据,如果存在就返回value,不存在就返回None
# None是可以改变的,当不存在时返回这个位置的数据,默认为None, 可以是False,1,-1 

# pop删除一个列表的数据
# dict_data.pop('小明') #删除指定key的数据,与del同
# print(dict_data) 

# popitem 删除字典中最后一个数据
# dict_data={'小刚':21,'小明':20,'小芳':18}
# print(dict_data)
# dict_data.popitem()
# print(dict_data) 

# update 更新 extend
# dict_data = {'小刚': 21, '小明': 20}
# # dict_data.update({'小芳':18}) #{'小刚': 21, '小明': 20, '小芳': 18}
# dict_data.update({'小明': 18})  # {'小刚': 21, '小明': 18}
# print(dict_data) 

四、字典的循环遍历
# keys 获取字典中的所有key 存放到一个dict_keys的对象里面
# dict_data = {'小刚': 21, '小明': 20}
# print(type(dict_data.keys()))
# print(dict_data.keys())
# print(list(dict_data.keys()))
# for i in dict_data.keys(): #     print(i)
# value获取字典中的所有values # dict_data = {'小刚': 21, '小明': 20} # print(type(dict_data.values())) # print(dict_data.values()) # for i in dict_data.values(): #     print(i)
# items # dict_data = {'小刚': 21, '小明': 20} # print(type(dict_data.items())) # print(list(dict_data.items())) # for i in dict_data.items(): #     print(i) #     print(list(i))  #列表可修改,元组不可修改 

# 压缩 压缩数据到一个变量里面 以元组存储
# a = '小明',18
# print(a)
# # 解包 只能用于知道里面是什么数据的场景
# name, age = a
# print(name,age)

dict_data = {'小刚': 21, '小明': 20}
# print(type(dict_data.items()))
# print(list(dict_data.items()))
# for name,age in dict_data.items():
#     print(name, age)
#     # print(i[0],i[1])
# 推荐解包的方式,有描述性 

五、创建集合
# set_data = {数据,数据,数据,数据,......}
# 无序的,唯一的
# 集合没有索引和key 

#字义一个空的集合
set_data = set()
print(type(set_data)) 

六、集合特点

# 无序的
# set_data = {0,1,2,3}    #{0, 1, 2, 3}
# set_data1 = {100,200,300}   #{200, 100, 300}
# print(set_data1)

# 唯一的 去除重复的数据,快速去重
# set_data = {0,1,2,3,3}
# set_data = {'0', '1', '2', '3', '3'}  # {'3', '2', '0', '1'}
# print(set_data)  # {0, 1, 2, 3} 

七、集合常规操作

# add增加数据
# set_data = {0,1,2,3,3}
# set_data.add(100)
# print(set_data)

# # remove删除
# set_data.remove('0')
# print(set_data)

八、几种数据类型比较

1.字义

字符串             列表                 字典                 元组

''              []               {}          ()
str()          list()           dict()      tuple()

字义一个空的集合
# set_data = set()
# print(type(set_data)) 

2. # bool int float str list tuple dict set 基础数据类型
# 可变数据类型 list dict set

 

标签:小明,Day08,print,set,dict,集合,data,字典
From: https://www.cnblogs.com/xiaoabai/p/17074181.html

相关文章

  • 【3】Python基础数据类型之字符串,切片,列表,元组,字典
    1.创建字符串  2.字符串输入输出,使用input()接收用户输入,使用print()输出。  3.字符串的索引下标4.切片:指对操作的对象截取其中一部分的操作。字符串、列表、元......
  • 【字典树】Atcoder Beginner Contest 287----E
    题目:E-Karuta(atcoder.jp)题解:这道题就是一个字典树求最长公共前缀的板子题。可以直接交板子。但我在翻题解的时候发现了另一种思路,就是将字符串按字典序排列后,每一个......
  • Python字典对象的创建(9种方式)
    第一种方式:使用{}firstDict={"name":"wangyuanwai","age":25} 说明:{}为创建一个空的字典对象第二种方式:使用fromkeys()方法second_dict=dict.f......
  • List<Object>集合获取指定属性最大值的对象
    List<Vo>list=dao.selectList();if(CollectionUtils.isNotEmpty(list)){Optional<Vo>max=list.stream().filter(obj->ObjectUtils.isNotEmpty(obj)&&ObjectUt......
  • 线程安全集合CopyOnWriteArrayList
    解决多线程的集合有以下几种1、Vertor(所有方法上加synchronized锁)能保证多线程安全,数据一致,但性能低下一般不用2、Collections.synchronizedList方法返回的List 在方......
  • 集合面试题
    1.ArrayList和LinkedList的区别?ArrayList查询速度快(不准确),尾部增删快,头部增删慢,随机访问速度快;LinkedList头尾增删速度快,中间不高,性能远比ArrayList差,不适合做......
  • 【Java001】Map集合遍历
    【Java001】Map集合遍历大家好,我们的gzh是朝阳三只大明白,满满全是干货,分享近期的学习知识以及个人总结(包括读研和IT),跪求一波关注,希望和大家一起努力、进步!!方式1使用Map.Entr......
  • springboot前端传后端集合的一些问题
     前端不能加qs来处理集合对象,后端接收需要加@RequestBody  mybatis用foreach遍历集合对象:<updateid="updateBatch"parameterType="news">updatenew......
  • 读Java8函数式编程笔记03_高级集合类和收集器
    1. 方法引用1.1. 一种引用方法的轻量级语法1.1.1. 提供了一种简短的语法1.1.2. 标准语法为Classname::methodName1.2. 凡是使用Lambda表达式的地方,就可以使用1.......
  • Java集合
    一、什么是集合二、Collection体系集合1.Collection父接口2.List集合方法(list继承collection)publicstaticvoidmain(String[]args){//创建l......