Python-字典
key-value, key必须唯一
1.常规创建字典
dict1 ={} # 空字典
dict1['Sex'] = 'male' # 添加字典项
print(dict1)
dict2 = {'Name': 'Bella', 'Age': '25'} # 指定字典项
print(dict2)
2. 使用dict()函数创建字典
dict3 = dict() # 空字典
print(dict3)
dict4 = dict(Namer='Bella', Age=25) # 指定关键字
print(dict4)
dict5 = dict([('a', 1), ('b', 2), ('c', 3)]) # 传入多个元祖
print(dict5)
dict6 = dict([['a', 10], ['b', 9], ['c', 8]]) # 传入多个列表
print(dict6)
dict7 = dict.fromkeys(['Google', 'Runoob']) # 使用fromkeys()函数构建,若无value,默认为None
print(dict7)
dict8 = dict.fromkeys(['Google', 'Runoob'], 10) # 使用fromkeys()函数构建,value全部为10
print(dict8)
3. 字典操作
3.1 获取value
data = {'Name': 'Bella'}
name = data['Name'] # 直接访问,当key不存在,报错
name = data.get('Name') # 使用get()函数,当key不存在,返回None
3.2 添 key-value
data = {'Name': 'Bella'}
data['Age'] = 23
print(data)
data.update({'Sex': 'male'}) #使用upate()函数
print(data)
3.3 修改key-value
data = {'Name': 'Bella', 'Age': '23'}
data['Name'] = 'Lily'
print(data)
data.update({'Name': 'Koro', 'Age': '41'}) #使用upate()函数
print(data)
3.4 删除key-value(in / not in 判断 key 是否存在)
data = {'Name': 'Bella', 'Age': '23'}
if 'Age' in data:
del data['Name'] # del ---删除key-value
print(data)
if 'Name' not in data:
print('Name is not in data')
3.5 清空所有key-value
data = {'Name': 'Bella', 'Age': '25'}
data.clear()
print(data)
3.5 一些常用方法
items()—获取字典所有key-value,返回一个dict_items对象
dict_b = {'Name': 'Bella', 'Age': '25', 'Sex': 'male'}
items = dict_b.items()
list_a = list(items) # 可转化为list
keys()—获取所有key
keys = dict_b.keys()
values()—获取所有value
values = dict_b.values()
popitem()—弹出字典最后一个key-value,并从字典中移除该key-value
dict_c = {'Name': 'Bella', 'Age': '25', 'Sex': 'male'}
print('popitem: ', dict_c.popitem()) # 弹出一个元祖
print(dict_c)
k, v = dict_c.popitem()
print('key: %s , value: %s' % (k, v))
pop()—弹出字典value,并从字典中移除该key-value
dict_d = {'Name': 'Bella', 'Age': '25'}
print('pop "Name" :', dict_d.pop('Name'))
print('pop "Age" :', dict_d.pop('Age'))
print('执行pop后:', dict_d)
copy()—字典复制,不改变原字典
data1 = {'a': 1, 'b': 2}
data2 = data1.copy()
data2['a'] = 5
print(data2, data1)
data2 = data1 # 直接复制,当data2改变时,会影响data1同时改变
data2['a'] = 5
print(data2, data1)
fromkeys() —构建字典列表
list1 = ['a', 'b']
st1 = dict.fromkeys(list1)
print(st1)
4.特殊操作
两个列表映射为字典
list1 = ['Name', 'Age']
list2 = ['Bella', '23']
dict1 = dict(zip(list1, list2))