字典 dict
特点:
1.符号:{}
2.关键字:dict
3.键值对保存:key : value,每次添加都必须是成对添加的。
定义:
dict1 = {} # 常用的空字典定义。
dict2 = dict() # 空字典,不常用。
dict3 = {"ID":12321321213,"name":"lucky","age":18}
键值对必须成对出现。
dict4 = dict([('name','lucky'),('age',18)])
创建过程,首先把列表拆开,两个元组分别转换成键值对,元组中的两个元素第一个作为key,第二个作为value,列表里面只能有两个元素。
增加元素:
dict6 = {}
dict6["brand"] = "huawei"
print(dict6)
dict6["brand"] = "mi"
print(dict6)
# {'brand': 'huawei'}
# {'brand': 'mi'}
如果key值存在就覆盖,不存在就创建一个key值,并且赋上value。
key在字典中是唯一的,value是不唯一的,很多key可以用一个value,就像数据库中的候选键和其他键的关系一样。
查询元素:
dict6 = {}
dict6["brand"] = "huawei"
dict6["brand1"] = "mi"
print(dict6["brand1"])
# mi
print(dict6["mi"])
# KeyError: 'mi'
字典中没有下标,只有key可以被用作查询。
dict6 = {}
dict6["brand"] = "huawei"
dict6["brand1"] = "mi"
for i in dict6:
print(i)
# brand
# brand1
字典允许遍历,遍历得到的是key值。
dict6 = {}
dict6["brand"] = "huawei"
dict6["brand1"] = "mi"
print(dict6.items())
# dict_items([('brand', 'huawei'), ('brand1', 'mi')])
items是一个dict的函数,把字典里的key:value转换为列表里面以元组为元素的形式,每个元组有两个值,一个为key,一个为value。
dict6 = {}
dict6["brand"] = "huawei"
dict6["brand1"] = "mi"
for key,value in dict6.items():
print(key,value)
# brand huawei
# brand1 mi
由元组拆分的原则可以知道,key和value两个元素接受一个元组里的两个元素。
dict6 = {}
dict6["brand"] = "huawei"
dict6["brand1"] = "mi"
for i in dict6.values():
print(i)
# huawei
# mi
for i in dict6.keys():
print(i)
# brand
# brand1
keys:获取字典中所有的key。
values:获取字典中所有的value。
print("brand" in dict6)
print("huawei" in dict6)
# True
# False
用in查询的时候要按照key搜索。
print(dict6.get("brand"))
print(dict6.get("11111"))
# huawei
# None
get为dict的内置函数,根据key找到value,如果找不到也不会报错,会返回None。
删除元素
dict1 = {"a":1,"b":2,"c":3}
del dict1["a"]
print(dict1)
# {'b': 2, 'c': 3}
del dict1["d"]
KeyError: 'a'
1.根据key值删除,如果key值在字典中不存在则会出现KeyError。
dict1.pop("b",0)
print(dict1)
# {'b': 2, 'c': 3}
print(dict1.pop("d",0))
# 0
2.pop(key[,default]),pop中的defalut是key值不在集合中的时候返回的东西。
dict1 = {"a":1,"b":2,"c":3}
dict1.popitem()
print(dict1)
# {'a': 1, 'b': 2}
dict1.popitem()
print(dict1)
# {'a': 1}
dict1.popitem()
print(dict1)
# {}
随机删除元素,但是实际上是从末尾删除。
clear与list的clear相同。
其他操作
dict1 = {"a":1,"b":2,"c":3}
dict2 = {"d":4,"e":5}
dict1.update(dict2)
print(dict1)
print(dict2)
# {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}
# {'d': 4, 'e': 5}
update,返回值为None。相当于dict1 + dict2,但是字典不支持“ + ”操作。
dict1 = {"a":666}
list1 = [1,2,3,4]
dict1 = dict1.fromkeys(list1)
print(dict1)
# {1: None, 2: None, 3: None, 4: None}
dict1 = dict1.fromkeys(list1,0)
print(dict1)
# {1: 0, 2: 0, 3: 0, 4: 0}
fromkeys可以把列表中的内容转换成字典里的key值,默认的value值为None。也可以附上一个初值,使value全为初值。一个dict进行fromkeys的时候,自身不会改变,而是会返回一个返回值,上面代码中dict1在进行fromkeys之后没有改变,而是在为自身赋值时发生了变化。