1、字典
- 字典和列表类似,是无序的可变序列
- 元素放在一对{}中,以key-value形式保存数据
- key是唯一的,value可以有多个
主要特征
- 通过键来读取
- 任意对象的无序集合
- 字典是可变的,并且可以任意嵌套
- 键必须唯一,且不可变
2、创建字典
dictionaryname = {} # 创建空字典
dictionaryname = dict() # 创建空字典
dictionaryname = {"key1":"value1","key2":"value2",...,"keyn":"valuen"}
3、dict()函数
除了可以创建空字典外,还能根据以有数据快速创建字典
1、根据函数映射创建字典
当list1和list2长度不同时,以短的为准
dictionaryname = dict(zip(list1,list2))
- list1:指定Key
- list2:指定value
- zip():把多个列表或元组对应位置的元素组合成元组,并返回包含这些内容的zip对象
- 如果想得到元组对象,则使用tuple()函数转换;如果想得到列表对象,则使用list()函数转换
name = ["zhangsan","lisi","wangwu","tony","jhon"]
height= [111,222,333,444,555,666]
dict1 = dict(zip(name,height))
print(dict1)
# {'zhangsan': 111, 'lisi': 222, 'wangwu': 333, 'tony': 444, 'jhon': 555}
# 使用list()把字典转换成列表,只会把key转换成对应的列表
print(list(dict1))
# ['zhangsan', 'lisi', 'wangwu', 'tony', 'jhon', 123]
# 使用tuple()把字典转换成列表,只会把key转换成对应的列表
print(tuple(dict1))
# ('zhangsan', 'lisi', 'wangwu', 'tony', 'jhon', 123)
2、通过给定的“key-value”来创建字典
dictionaryname = dict(key1=value1,key2=value2,...,keyn=valuen)
dict2 = dict(张三=120,李四="数学老师",王五="打酱油")
print(dict2)
# {'张三': 120, '李四': '数学老师', '王五': '打酱油'}
3、创建键值为空的字典
dictionaryname = dict.fromkeys(list)
list:作为字典key值的列表
name = ["zhangsan","lisi","lingling","tony"]
dict3 = dict.fromkeys(name)
print(dict3)
# {'zhangsan': None, 'lisi': None, 'lingling': None, 'tony': None}
4、删除字典
del dictionaryname # 删除整个字典
del dictionaryname[key] #删除字典中某个key-value
dictionaryname.clear() # 清空字典中的所有元素,剩下一个空字典
5、访问字典元素
1、直接打印
print(dictionaryname[key])
需要注意如果字典中没有该key,则会报错
print(dictionaryname[key] if ‘’ in dictionaryname else ‘字典中没有该key值’)
2、使用get()方法访问
dictionaryname.get(key[,default])
- 为了避免在访问字典元素时,没有该key值。可以通过get()方法设置默认值。当没有目标key值时,则返回默认部分。如果没有自定义默认部分,则会返回None
6、遍历字典
dictionaryname.items() # 使用items()方法来获取字典的“键值对”列表
dictionaryname.keys() # 使用keys()方法来获取字典的key列表
dictionaryname.values() # 使用values()方法来获取字典的value列表
for item in dictionaryname.items():
print(item)
for key,value in dictionaryname.items():
print(key,value)
7、修改元素
dictionaryname[key] = value
- 当字典中有该key时,则更新该key的value
- 当字典中没有key时,则添加该key-value到字典中
- key必须是唯一的