1、定义
字典里的数据是以键值对形式存在,字典数据和数据顺序没有关系。
即字典不支持下标,后期无论数据如何变化,只需要按照对应的键的名字查找数据即可。
只能使用不可变的对象(比如字符串)来作为字典的键,但是你可以把不可变或可变的对象作为字典的值。
2、特点:
大括号,数据为键值对,各个键值之间用逗号隔开。
3、语法
创建有数据字典:
示例1:
dict1 = {"name":"Tom","age":"20","gender":"男"}
示例2:
dict2 = dict((("A",1),("B",2),("C",3)))
print(dict3)
{"A":1,"B":2,"C":3}
示例3:
dict3 = dict(B = "我是B",A = "我是A")
{"A":"我是A","B":"我是B"} #按字母顺序排序
创建空字典:
dict2 = {}
dict3 = dict()
4、字典常见操作->字典是可变类型
4.1 增加:
字典序列[key] = 值
如果key存在则修改这个key对应的值。
如果key不存在则新增此键值对。
4.2 删除:
del()/del
:删除字典或者删除字典中指定的键值对,key存在可删,不存在会报错
dict1 = {"name":"Tom","age":"20","gender":"男"}
del dict1["name"]
del(dict1)
输出:
{"age":"20","gender":"男"}
报错
clear()
:清空字典
dict1.clear()
输出:
{}
4.3 修改:
字典序列[key] = 值
如果key存在则修改这个key对应的值。
如果key不存在则新增此键值对。
4.4 查找:
4.4.1 key值查找:
print(dict1["name"]) #Tom
如果当前查找的key存在,则返回对应的值;否则报错
4.4.2 get():
语法:
字典序列.get(key,默认值)
如果当前查找的key不存在则返回第二个参数(默认值)。
如果省略第二个参数,则返回None。
示例:
print(dict1.get("name","ATM")) #Tom
4.4.3 keys():
print(dict1.keys()) #dict_keys(['name', 'age', 'gender'])
4.4.4 values():
print(dict1.values()) #dict_values(['Tom', '20', '男'])
4.4.5 items():
print(dict1.items())
#dict_items([('name', 'Tom'), ('age', '20'), ('gender', '男')])
4.5 字典的循环遍历:
4.5.1 遍历字典的key:
dict1 = {"name":"Tom","age":"20","gender":"男"}
for key in dict1.keys():
print(key)
#输出:name age gender
4.5.2 遍历字典的value:
dict1 = {"name":"Tom","age":"20","gender":"男"}
for value in dict1.values():
print(value)
#输出:Tom 20 男
4.5.3 遍历字典的元素:
dict1 = {"name":"Tom","age":"20","gender":"男"}
for item in dict1.items():
print(item)
#输出:('name', 'Tom'), ('age', '20'), ('gender', '男')
4.5.4 遍历字典的键值对:
dict1 = {"name":"Tom","age":"20","gender":"男"}
for key,value in dict1.items():
print(f'{key}={value}')
#输出:name=Tom age=20 gender=男
4.6 检验键值对是否存在 in:
item = {"name":"TOM","age":18}
if "name" in item:
print("Succeed") #Succeed
4.7 fromkeys((key1,key2,…),“值”)
创建并返回一个字典。
示例:
dict1 = {}
print(dict1.fromkeys((1,2,3,4),"值"))
#{1: '值', 2: '值', 3: '值', 4: '值'}
4.8 copy()浅拷贝:
赋值是两个引用指向一个内存地址。
copy()是开辟一个新的内存空间。
dict1 = {"name":"TOM","age":18}
dict2 = dict1.copy()
print(dict2)
#输出:{'name': 'TOM', 'age': 18}
4.9 pop(键)弹出返回值并删除键值对:
输入:
dict1 = {"name":"Tom","age":"20","gender":"男"}
print(dict1.pop("name"))
print(dict1)
输出:
Tom
{'age': '20', 'gender': '男'}
4.10 setdefault(“键”,值)增加:
输入:
dict1 = {"name":"Tom","age":"20","gender":"男"}
print(dict1.setdefault("ID",5))
print(dict1)
输出:
5
{'name': 'Tom', 'age': '20', 'gender': '男', 'ID': 5}
欢迎指正错误!