字典存储一系列的键值对:key:value
{}
表示字典,可以使用{}创建一个字典:
分割,元素之间用逗号,
分割。# 创建空字典
a = {}
print("type(a) = ", type(a)) # type(a) =
print("a = ", a) # a = {}
# 创建字典
a = {'a':123, 'b':456, 0:789}
print("a = ", a) # a = {'a': 123, 'b': 456, 0: 789}
a = dict(key1=value1,key2=value2,key3=value3)
# 创建了一个空字典
a = dict()
print("type(a) = ", type(a)) # type(a) =
print("a = ", a) # a = {}
# 利用dict创建字典,此时key只能是字符串,不能是数字
a = dict(a=123, b=456, c=789)
print("a = ", a) # a = {'a': 123, 'b': 456, 'c': 789}
a = dict([[key1, value1],[key2, value2],[key3, value3]])
a = dict([['a', 123], ['b', 456], ['c', 789]])
print("type(a) = ", type(a)) # type(a) =
print("a = ", a) # a = {'a': 123, 'b': 456, 'c': 789}
a = dict([('a', 123), ('b', 456), ('c', 789)])
print("type(a) = ", type(a)) # type(a) =
print("a = ", a) # a = {'a': 123, 'b': 456, 'c': 789}
zip(sequence1, sequence2, ...)
keys = ['a', 'b', 'c']
value = [123, 456, 789]
zipped = zip(keys, value)
print(zipped) #
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)]
keys = ['a', 'b', 'c']
value = [123, 456, 789]
a = dict(list(zip(keys, value)))
print("a = ", a) # a = {'a': 123, 'b': 456, 'c': 789}
Python的字典通过key来获取value,把key看做下标即可
a[x]:a为dict、x为中的一个key,必须存在否则会报错
keys = ['a', 'b', 'c']
value = [123, 456, 789]
a = dict(list(zip(keys, value)))
print("a = ", a) # a = {'a': 123, 'b': 456, 'c': 789}
print(a['a'], a['b']) # 123 456
如果并不知道x是否在字典的key中,需要查询字典中x对应的value,可以使用get方法
a.get(x, value=None)
:a表示字典,x表示查询的key,value表示默认值keys = ['a', 'b', 'c']
value = [123, 456, 789]
a = dict(list(zip(keys, value)))
print("a = ", a) # a = {'a': 123, 'b': 456, 'c': 789}
print(a.get('a', 'XXX')) # 123
print(a.get('d', 'XXX')) # XXX
print(a.get('e')) # None
字典通过直接利用key可以访问对应的value,类似的,添加元素、修改元素也是直接利用key和value就能进行添加或者更新
a = {}
a['语文'] = 80
print("a = ", a) # a = {'语文': 80}
a['数学'] = 99
print("a = ", a) # a = {'语文': 80, '数学': 99}
a['英语'] = 90
print("a = ", a) # a = {'语文': 80, '数学': 99, '英语': 90}
#修改元素
a['语文'] = 85
print("a = ", a) # a = {'语文': 85, '数学': 99, '英语': 90}
删除字典中的键值对,可以用Python本身的删除语法del
s = {'a':123, 'b':456, 'c':789}
del s['a']
print("s = ", s) # s = {'b': 456, 'c': 789}
del s['b']
print("s = ", s) # s = {'c': 789}
del s['c']
print("s = ", s) # {}
删除字典中的键值对,也可以用字典的删除方法pop
s = {'a':123, 'b':456, 'c':789}
s.pop('a')
print("s = ", s) # s = {'b': 456, 'c': 789}
s.pop('b')
print("s = ", s) # s = {'c': 789}
s.pop('c')
print("s = ", s) # {}
与List一样,直接利用for语句就可以遍历字典
for x in a
:其中x是循环变量,a是字典,此时遍历的是a的key列表a = dict([['a', 123], ['b', 456], ['c', 789]])
for x in a:
print(x)
# a
# b
# c
利用a.keys()
、a.values()
、a.items()
可以分别循环遍历key、value、二元组(key,value)
s = {'a':123, 'b':456, 'c':789}
for x in s.keys():
print(x)
# a
# b
# c
for y in s.values():
print(y)
# 123
# 456
# 789
for x, y in s.items():
print(x, y)
# a 123
# b 456
# c 789
in
、not in
判断某元素是否在字典中。x in a
、x in a.keys()
:判断是否在a的key中x in a.values()
:判断x是否在a的value中(x, y) in a.items()
:判断x是否在a的key中,并且对应的value为ys = {'a': 123, 'b': 456, 'c': 789}
print('a' in s) # True
print('d' in s.keys()) # False
print(123 in s.values()) # True
print(135 in s.values()) # False
print(('a', 123) in s.items()) # True
print(('b', 123) in s.items()) # False
s = {'a': 123, 'b': 456, 'c': 789}
t = s
# 修改s,t也一起修改:t就是s
s['d'] = 1000
print("s =", s) # s = {'a': 123, 'b': 456, 'c': 789, 'd': 1000}
print("t =", t) # t = {'a': 123, 'b': 456, 'c': 789, 'd': 1000}
s = {'a': 123, 'b': 456, 'c': 789}
t = s.copy()
# 修改s,t不会修改:t就是s的副本
s['d'] = 1000
print("s =", s) # s = {'a': 123, 'b': 456, 'c': 789, 'd': 1000}
print("t =", t) # t = {'a': 123, 'b': 456, 'c': 789}
s = {'a':123, 'b':456, 'c':789}
t = {'a':321, 'd':1000}
s.update(t)
print("s = ", s) # s = {'a': 321, 'b': 456, 'c': 789, 'd': 1000}
print("t = ", t) # t = {'a': 321, 'd': 1000}