自学python_7 字典

字典 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之后没有改变,而是在为自身赋值时发生了变化。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值