目录
字典
键(key)对应的值(value)。key必须唯一
{}表示字典
字典中的key和value之间用冒号:分隔,元素之间用逗号,分隔
创建字典
-
a=dict(key1=value 1,key2=value 2,key3=value 3)
key只能是字符串,不能是数字。
-
a=dict([key1,value 1],[key2,value 2],[key3,value 3])
-
zip(sequence1,qequence2...)
把多个序列相同下标的元素组装成元组,结果是一个可迭代对象(就是一一对应)
keys = ['a','b','c']
value = [123,456,789]
zipped = zip(keys,value)
print(zipped) #<zip object at 0x000001CCB9FC5340>
print(list(zipped)) #[('a', 123), ('b', 456), ('c', 789)]
print(list(zipped)) #[]
keys = ['a','b','c']
value1 = [123,456,789]
value2 = [321,654,987,1000]
zipped = list(zip(keys,value1,value2))
print(zipped) #[('a', 123, 321), ('b', 456, 654), ('c', 789, 987)]
访问字典
-
a[x]:a为dict、x为a中的一个key,必须存在。
-
a.get(x,value=None):a表示字典,x表示查询的key,value表示默认值(不存在返回的)
添加和修改元素
直接利用key可以访问对应的value,类似的,添加元素、修改元素也是直接利用key和value就能进行添加或者更新
删除元素
可以利用python本身的删除语法del del s["a"]
也可以用字典的删除方法pop s.pop("a")
遍历字典
a.keys():所有key a.values():所有value
a.items():二元组(key,value)
- 与List一样,直接利用for语句就可以遍历字典
- for x in a:其中x是循环变量,a是字典,此时遍历的是a的key列表
s = {'a':123,'b':456,'c':789}
for x in s:
print(x)
- 利用a.keys()、a.values()、a.items()可以分别循环遍历key、value、二元组(key,value)
s = {'a':123,'b':456,'c':789}
for x in s.keys():
print(x)
for y in s.values():
print(y)
for x,y in s.items():
print(x,y)
判断是否存在元素
字典中可以使用in、not in判断某元素是否在字典中
X in a、x in a.keys():判断x是否在a的key中
X in a.values():判断x是否在a的value中
(x,y) in a.items():判断x是否在a的key中,并且对应的value为y
拷贝字典
与list类似,直接赋值无法进行复制,需要使用copy函数完成复制
合并两个字典
字典利用update方法可以将另一个字典的key-value对更新到已有字典中
a.update(b):把字典b中的每一个元素放入a中更新:
如果b中的key在a中没有,则直接在a中添加一组新的key-value对
如果b中的key在a中有了,则直接更新对应的value
s = {'a':123,'b':456,'c':789}
t = {'a':321,'d':1000}
s.update(t) #t.update(s)
print("s = ",s)
print("t = ",t)