目录
字典的定义:
结构:
其他类型转换成字典:
常见方法:
keys(获取字典里面使用的键,返回一个列表,列表内都是字典内的键):
values(获取字典里面所有的值,返回一个列表,列表内都是字典内的值)
items(获取字典里面所有的元素,返回一个元组,元组内都是字典内的元素)
get(根据键名得到相对于的值,如果没有返回Nome)
改:
删:
pop(在原列表中根据键名删除某个元素并弹出这个值,如果没有找到则返回Nome):
扩展:
len()(获取长度)
索引:
根据键添加、修改值:
根据键名进行删除:
对字典嵌套里进行取值:
英文为dict,由键(key)和值(value)成对组成,键和值中间以冒号:隔开,项之间用逗号隔开,整个字典由大括号{}括起来。
变量名={key(值):value(值)}
content_dict={'name':'小明','age':18} #示例
字典的键有特殊要求: 必须是可哈希, int/bool/tuple/str, 不可以哈希的类型:list/dict! 简单说就是字典的键只能是整型、布尔类型、元组、字符串类型,不能是列表、字典类型!
dic = {123: 456, True: 999, "id": 1, "name": "你好", "age": 18, "stu": ['帅哥', "美女"], (1, 2, 3): "mht"}
print(dic[123])
print(dic[True])
print(dic["id"])
print(dic[(1, 2, 3)])
否则会报错 TypeError: unhashable type: 'list'
其他类型转换成字典必须要有对应的键名和值。
1、使用嵌套列表,将要转换的键名和值都放在最里面的列表内,外层列表表示字典元素的个数。
v1=dict([['name','小明'],['age',19]])
print(v1) #{'name': '小明', 'age': 19}
2、 和第一种类似,只是将内层的列表改成元组。
v1=dict([('name','小明'),('age',19)])
print(v1) #{'name': '小明', 'age': 19}
平时使用第一种方法就可以了,第二种方法知道了解就行。
翻译为:钥匙
content_dict={'name':'小明','age':18,'height':180}
content_keys=content_dict.keys() #将字典里面的键赋值给content_keys
print(content_keys) #输出结果为dict_keys(['name', 'age', 'height'])
翻译为:价值观
content_dict={'name':'小明','age':18,'height':180}
content_value=content_dict.values() #将字典里面的值赋值给content_value
print(content_value) #输出结果为dict_values(['小明', 18, 180])
翻译为:项目
content_dict={'name':'小明','age':18,'height':180}
data=content_dict.items() #将字典里面的元素赋值给data
print(data) #输出结果为dict_items([('name', '小明'), ('age', 18), ('height', 180)])
翻译为:得到
content_dict={'name':'小明','age':18,'height':180}
name=content_dict.get('name')
data1=content_dict.get('111',None) #如果没找到时
data2=content_dict.get('111') #省略后
print(name) #输出结果为小明
print(data1) #输出结果为Nome
print(data2) #输出结果为Nome
Nome在这里是可以省略的!
通过索引 + 值 修改键的值。
content_dict={'name':'小明','age':18,'height':180}
content_dict['name']='小红'
print(content_dict) #输出结果为{'name': '小红', 'age': 18, 'height': 180}
翻译为:枪击、爆声、流行乐曲。
content_dict={'name':'小明','age':18,'height':180}
content=content_dict.pop('name',None) #删除键名和所对应的值,并将值赋值给content,如果没有找到,则将None赋值给content
data=content_dict.pop('18',None) #如果没有的情况
print(content_dict) #输出结果为{'age': 18, 'height': 180}
print(content) #输出结果为小明
print(data) #输出结果None
如果不加Nome的情况下,当没有找到时会报错KeyError: '键名'!
content_dict={'name':'小明','age':18,'height':180}
print(len(content_dict)) #输出结果3
字典的索引与其他的不同,字典的索引是通过键名的!
content_dict={'name':'小明','age':18,'height':180}
print(content_dict['name'])
如果字典里没有改键名,会自动添加键名和值。 如果字典里有该键名,则对对应的值进行修改
content_dict={'name':'小明','age':18,'height':180}
content_dict['money']=110 #如果字典里没有改键名,会自动添加键名和值
content_dict['name']='小红' #如果字典里有该键名,则对对应的值进行修改
print(content_dict) #输出结果为{'name': '小红', 'age': 18, 'height': 180, 'money': 110}
del(根据键名进行删除操作)
content_dict={'name':'小明','age':18,'height':180}
del content_dict['height']
print(content_dict) #输出结果为{'name': '小明', 'age': 18}
如果没有找到该键名则会报错:KeyError: '键名'
content_dict={'name':'小明','age':18,'height':180,'names':['小红','小亮','小海']}
print(content_dict['names']) #输出结果为['小红', '小亮', '小海']
print(content_dict['names'][0]) #输出结果为小红