1 字典的常用方法
clear()用于清空字典中所有的键值对
cars = {'BMW':88,'benchi':83,'tesila':95}
print(cars) # {'BMW': 88, 'benchi': 83, 'tesila': 95}
# 清空cars里面所有的键值对
cars.clear()
print(cars) # {}
get()其实就是根据key获取value的,它相当于是方括号语法的增强版,如果使用方括号语法访问并不存在的key的时候,程序会报错;但是如果使用get()方法访问不存在的key的时候,这个方法会返回一个None,不会导致程序报错
cars = {'BMW':88,'benchi':83,'tesila':95}
print(cars.get('BMW')) # 88
print(cars.get('baoshijie')) # None
print(cars['baoshijie']) # 会报错
update()可以使用一个字典所包含的键值对来更新已有的字典
cars = {'BMW':88,'benchi':83,'tesila':95}
cars.update({'BMW':4.5,'baoshijie':9.3})
print(cars) # {'BMW': 4.5, 'benchi': 83, 'tesila': 95, 'baoshijie': 9.3}
items()、keys()、values()分别用于获取字典中的所有的键值对、所有的key、所有的value
这三个方法依次会返回dict_items、dict_keys和dict_values的对象
python不希望用户直接操作这几个方法,但是可以通过list()函数把他们转换成列表
#获取字典所有的键值对
cars = {'BMW':88,'benchi':83,'tesila':95}
ims = cars.items()
print(type(ims)) # <class 'dict_items'>
print(list(ims)) # [('BMW', 88), ('benchi', 83), ('tesila', 95)]
print(list(ims)[1]) # ('benchi', 83)
# 获取字典中所有的key
cars = {'BMW':88,'benchi':83,'tesila':95}
kys = cars.keys()
print(type(kys)) # <class 'dict_keys'>
print(list(kys)) # ['BMW', 'benchi', 'tesila']
print(list(kys)[2]) # tesila
# 获取字典中所有的value
cars = {'BMW':88,'benchi':83,'tesila':95}
vals = cars.values()
print(type(vals)) # <class 'dict_values'>
print(list(vals)) # [88, 83, 95]
print(list(vals)[0]) # 88
以上三剑客需要调用list()函数将它们转换为列表,这样就可以把这三个方法的返回值转换为列表了
pop()用于获取指定的key对应的value,并且删除这个键值对
cars = {'BMW':88,'benchi':83,'tesila':95}
print(cars.pop('tesila')) # 95
print(cars) # {'BMW': 88, 'benchi': 83}
setdefault() 用于根据key来获取对应的value
当程序要获取的键在字典中不存在的时候,这个方法会先为这个不存在的key设置一个默认的value,然后再返回这个key对应的value
cars = {'BMW':88,'benchi':83,'tesila':95}
print(cars.setdefault('baoshijie',92))# 如果不存在就直接添加92
print(cars) # {'BMW': 88, 'benchi': 83, 'tesila': 95, 'baoshijie': 92}
print(cars.setdefault('BMW',34)) # 如果存在不会改变88
print(cars) # {'BMW': 88, 'benchi': 83, 'tesila': 95, 'baoshijie': 92}
2 字典的公共功能
-
长度
info = {'age':12,'shengming':True,'name':'阿呆'} data = len(info) print(data) # 3 3个键值
-
索引(键)
info = {'age':12,'shengming':True,'name':'阿呆'} print(info['age']) # 12 print(info['name']) # 阿呆 print(info['shengming']) # True # print(info['xxx']) # 报错 # 在以后的程序开发中最好是用get value = info.get("xxxx") print(value) # None
-
for循环
info = {'age':12,'shengming':True,'name':'阿呆'} # 直接遍历这个字典,可以获取所有的键 for item in info: print(item) # 获取所有键 for key in info.keys(): print(key) # 获取所有键 for value in info.values(): print(value) # 获取所有的值 for k,v in info.items(): print(k,v) # 获取所有的键值
3 集合 set
用来保存不重复的元素,也就是说集合中的元素都是唯一的,互不相同
{name1,name2......namen}
只能存储不可变的数据类型
无法存储列表,字典,集合
数据要保证是唯一的,因为集合中对于每种数据元素,只会保留一份
s = {1,2,1,(1,2,3),'c','c'}
print(s) # {1, 2, 'c', (1, 2, 3)}
集合是无序的,所以每次输出时元素的顺序可能都不相同
散列类型无序,不可以通过下标提取元素,报错
s = {1,2,3,4,1,2,5,96,8,4,1,63,96,4,1}
print(s[1]) # 报错
语法: 集合名 = {数据1,数据2,数据3....}
如果有重复数据,是不会被添加到内存空间里面的
注意:创建空集合的时候必须使用set()而不能是{},因为这个{}默认是空字典
li = [] #空列表
tu1 = () # 空元祖
str1 = "" #空字符串
dict1 = {} #空字典
set1 = set() #空集合
python中集合主要用来干2件事,去重和数学关系运算
# 去重
li = [1,1,1,2,3,4,56,74,89,4,165,132,123,1]
print(list(set(li)))
3.1 集合数学运算
运算符操作 | python运算符 | 含义 |
---|---|---|
交集 | & | 取两集合公共的元素 |
并集 | | | 取两集合全部的元素 |
差集 | - | 取一个集合中另一集合没有的元素 |
成员运算 | in 和 not in | 判断一个某个元素是否在或者不在集合中 |
集合1 & 集合2——》判断交集
集合1 | 集合2——》判断并集
集合1 - 集合2——》判断差集
交集:两个集合共有的数据
并集:两个集合里面的全部数据(不包括重复数据,集合本身也不能重复)
差集:集合1 - 集合2 减去共有的,剩下的就是差集
set1 = {1,2,3}
set2 = {3,4,5}
print(set1 & set2) # 3
print(set1 | set2) # {1, 2, 3, 4, 5} 可以理解为set1+set2,但是结果会去重
print(set1 - set2) # {1, 2}
print(set2 - set1) # {4, 5}
print(3 in set2) # True
集合的作用:
1.存储非重复数据
2.用于将序列类型去重
3.逻辑判断 交集,并集,差集
3.2增
add() 参数为要添加的对象,通过多次添加数据可以发现添加后的元素位置不确定,无序添加
集合名.add(元素)
s = {'小川'}
s.add("木槿")
print(s)
s.add("阿宸")
print(s)
s.add("七零")
print(s)
s.add("乃荣")
print(s)
3.3 删
pop()随机删除一个元素
仅仅是在集合元素是字符串的时候,并且在cmd运行的时候才会随机删除,在pycharm中运行默认保持删除第一个元素
s.pop()
print(s)
s.pop()
print(s)
s.pop()
print(s)
remove() 有参数,参数为要删除的元素,如果元素不存在就报错
s.remove("小川")
print(s)
s.remove("1")
print(s) # 元素不存在会报错
discard() 跟remove类似,但是元素不存在不会报错
s.discard("aaa")
print(s) # 元素不存在不会报错
clear() 清空集合中的元素
s.clear()
print(s) # set()
del 删除集合
del s # 整个删除变量,先删除了变量再去打印变量s就会报错显示变量s不存在
print(s)
4 公共功能
- 长度
- for 循环
- 减 (计算差集)
注:一定要记得它们是无下标,不可重复的