字典和集合一样是无序 的,不能通过索引来存取,只能通过键来存取。
字典的键必须是不可变的数据类型,如数字,字符串,元组等,列表等可变对象不能作为键。
不允许同一个键出现两次,创建时如果同一个键被赋值两次,后一个会被记住。
字典创建、添加、删除:
# 字典创建
a = {'name':'xiaobin','age':18}
print(a)
b = dict(name = 'xiaobin',age = '18')
print(b)
# 字典索引,只能通过键值索引
a['address'] #当字典中无该键时会报错
a.get('address') # 当字典中无该键时不会报错,字典也不会更新
a['address'] = a.get('address', 'anhui'),字典会更新,当字典中无该键时,返回get函数中第二个参数,如果第二个参数没传入则返回None
# 字典添加,键不重名的添加,重名的会覆盖更新
a['from'] = 'anhui'
print(a)
a.update({'hobby':'football','age':20})
print(a)
# 字典元素删除
# del a['age']与a.pop('age')都为清除该键值对
# a.clear()清空该字典
b = a.pop('age')
print(b)
print(a)
运行结果:
{'name': 'xiaobin', 'age': 18}
{'name': 'xiaobin', 'age': '18'}
{'name': 'xiaobin', 'age': 18, 'from': 'anhui'}
{'name': 'xiaobin', 'age': 20, 'from': 'anhui', 'hobby': 'football'}
18
{'name':'xiaobin'}
字典修改:
info = {'a':[1,2,4],'b':[4,5,6]}
info['a'][2] = 3
print(info)
运行结果:{'a': [1, 2, 3], 'b': [4, 5, 6]}
字典成员关系:
#成员关系
a = {'a':1,'b':2}
print('b' in a)
运行结果:True
字典方法:
a = {'a':1,'b':2}
print(a.keys())
print(a.values())
print(a.items())
运行结果:
dict_keys(['a', 'b'])
dict_values([1, 2])
dict_items([('a', 1), ('b', 2)])
内置函数zip():
打包,将两个可迭代对象作为参数,将对象中对应元素打包成一个元组,然后返回这些元组组成的zip对象。
items = ['Fruit', 'Books', 'Others']
prices = [96, 78, 85]
a = dict(zip(items, prices))
a
>> {'Fruit': 96, 'Books': 78, 'Others': 85}
{key:value for key, value in zip(items, prices)}
>> {'Fruit': 96, 'Books': 78, 'Others': 85}
# 当元素长度不一样时,以短的作为标准进行打包
items = ['Fruit', 'Books', 'Others']
prices = [96, 78, 85, 78, 64]
a = dict(zip(items, prices))
>> {'Fruit': 96, 'Books': 78, 'Others': 85}
字典排序:
my_dict = {'b': 2, 'a': 3, 'c': 1}
sorted_dict = sorted(my_dict.items(), key=lambda x: x[0])
print(sorted_dict)
# [('a', 3), ('b', 2), ('c', 1)]
my_dict = {'b': 2, 'a': 3, 'c': 1}
sorted_dict = sorted(my_dict.items(), key=lambda x: x[1])
print(sorted_dict)
# [('c', 1), ('b', 2), ('a', 3)]
还有reverse参数,reverse=False代表默认升序,reverse=True代表降序。