Python3 字典、集合

一、字典

字典(dict)    键值对数据

字典是另一种可变容器模型,且可存储任意类型对象。

字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示:

dic = {'键':'值','键':'值'}

dic = {key0:value0,key1:value1}

   键: 不可变数据,不能重复,如:整型(数字)、字符串、元祖、布尔值

   值: 随意


字典的主要作用是存储数据,字典的查找快一些;不可哈希的,就是可变的数据,不可变的数据能哈希

# python3.6 版本以上:字典默认是有序的, 怎么写的顺序就怎么打印出来,理论上字典是无序的

键: 不可变数据,不能重复,如:整型(数字)、字符串、元祖、布尔值

值: 随意


字典的主要作用是存储数据,字典的查找快一些
不可哈希的,就是可变的数据,不可变的数据能哈希

# python3.6 版本以上:字典默认是有序的, 怎么写的顺序就怎么打印出来,理论上字典是无序的

 

增:

dic[11] = '小米'             #下标新增

dic.setdefault(11,'华为')    # 如果有返回值  就不进行添加;如果返回None, 就添加   返回的是添加的值

dict.fromkeys('可迭代对象')  # 坑  不写值默认是None  写值得时候如果是可变数据类型就需要小心了

 

删:

del dic                      #直接删除字典

del dic[1]                   #通过键值删除

dic.pop()                    #不成立,必须跟键值

dic.pop("list",'找不到时的提示语句')  通过键删除返回值

# dict.remove               # 没有

dic.clear()                   #清除字典

dic.popitem()                #python3默认删除最后一个,python2随机删除

 

改:

dic.update(dic1)             #有键的就更新,没键的就新增,在括号里级别高于update前面的

dict['键'] = '值'               #只有在字典中才是修改 , 没有在字典中就是增

 

查:

print(dic[2])                # 通过键查找   如果键不存在就报错

print(dic.get(2))            # 通过键查找    如果键不存在不会报错,返回None

print(dic.setdefault('33'))    # 不存在返回None

 

字典的方法:

for i in dic2:

    print(i)               #取到键

for i in dic2:

    print(dic2.get(i))     #通过键取到值

for i in dic2.keys():

    print(i)               #直接取到键

for i  in dic2.values():

    print(i)               #直接取到值

for i in dic2.items():

    print(i)               #直接取到键值对

for i in dic2:

print(i,dic2[i])        #直接取到键、值

 

print(dic2.keys())       # 高仿列表,所有的键 dict_keys(['33', '66'])  不能使用下标

print(dic2.values())     # 高仿列表,所有的值 dict_values(['gg', 'pp'])  不能使用下标

print(dic2.items())      # 所以的键值  元祖形式

 

解构:

a,b,c = 1,2,3    # 1,2,3   True,False,True  '456'  [7,8,9]  (7,8,9) {'1':8,'2':9,'3':0}

print(a)

print(b)

print(c)

 

面试题:

a = 10

b = 20

a,b = b,a               # 10000%

print(b)  # 10

print(a)  # 20

 

for k,v in dic2.items():   # k,v =  ('33','gg')

   print(k)

   print(v)

 

 

字典的嵌套

查找思想和列表一样,只要是{开头     }结尾的就是一体

 

二、集合

集合(set)是一个无序的不重复元素序列。

可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。

创建格式:

se = {value0,value1,value2...}
或者
set(value)

集合   存储数据,天然去重,内容要求不可变数据  无序 不能是用下标

 

增:

se.add('内容')

se.update('可迭代对象')

 

删:

se.remove('内容')

se.pop()   默认删除第一个

del se    删除整个集合

改:

集合就是先删后增

查:

for 循环

其他操作:

 

交集   &

并集   |

差集   -

反差集 ^

 

子集 <

超级 >

冻结集合 :  把可变的集合变成了不可变得集合   不常用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值