Python 字典

1 什么是字典

字典是Python中唯一的映射类型,采用键值对(key-value)的形式存储数据

Python中对key进行哈希函数运算,根据结果来决定value的存储地址,所以字典是无序的,且key必须是可哈希的可哈希的意思是,key必须是不可变类型:如数字、字符串、元组

字典和列表是Python中最灵活的内置数据类型,两者的区别在于:列表是有序的对象集合、可以通过索引取值;字典是无序的对象集合,只能通过键(key)来取值

特别注意:Python 3.7引入了有序字典,使用时需要先导入 from collections import OrderedDict

2 字典的操作

2.1 创建字典

创建字典方法如下:

# 创建空字典
dict1 = {}
dict2 = dict()
print(dict1)
print(dict2)

# 直接赋值
dict3 = {"张无忌": 25, "赵敏": 24}
print(dict3)

# dict函数和参数传值
dict4 = dict(张无忌=25, 赵敏=24)
# 此方法以参数形式构建键值对,所以字符不用加引号"",Python生成字典时会自动补上,同时也不能用数字作为键,因为参数不能以数字开头
print(dict4)

# dict函数和可迭代对象
dict5 = dict(zip(["张无忌", "赵敏", "周芷若"], [25, 24, 25]))
dict6 = dict([("张无忌", 25), ("赵敏", 24), ("周芷若", 25)])
print(dict5)
print(dict6)

# 字典推导式,此方法严格来说就是直接赋值
dict7 = {i: i ** 2 for i in range(10) if i % 2 == 0}

# dict.fromkeys(sep,value=None)方法创建,sep是可迭代序列,value是可选参数,所有值均相同,默认值是None
dict8 = dict.fromkeys(range(3))
print(dict8)

结果如下:

2.2 访问列表元素

2.2.1 以键(key)访问值(value)

示例如下:

a = {"张无忌": 25, "赵敏": 24}
print(a["张无忌"])

结果如下:

2.2.2 dict.item()方法遍历字典

dict.item()方法返回的是一个二元元组构成的dict_item类型对象,dict_item类型可以遍历,但不能更改

其中二元元组是由字典的键值对构成,示例如下:

a = {"张无忌": 25, "赵敏": 24}
print(a.items())
print(type(a.items()))

for item in a.items():  # item对象由元组构成
    print(item)
    print(type(item))

for key, value in a.items():  # 元组由键值对构成
    print(key, value)
    print(type(key), type(value))

结果如下:

2.2.3 dict.key()、dict.value()方法遍历字典的键、值

示例如下:

a = {"张无忌": 25, "赵敏": 24}
print(a.keys())
print(a.values())
print(type(a.keys()), type(a.values()))

for key in a.keys():
    print(key)
    print(type(key))

for value in a.values():
    print(value)
    print(type(value))

结果如下:

2.3 改

修改字典的值直接通过键进行覆盖即可,实例如下:

a = {"张无忌": 27, "赵敏": 24, "周芷若": 25}
a["张无忌"] = 30
print(a)

结果如下:

而修改字典的键则需要先用pop()方法把键值对删掉并取出值,然后再将值和新的键新增至原字典,示例如下:

a = {"张无忌": 27, "赵敏": 24, "周芷若": 25}
a["陈友谅"] = a.pop("张无忌")
print(a)

结果如下:

2.4 增

2.4.1 使用键直接写入键值对

a = {"张无忌": 27, "赵敏": 24, "周芷若": 25}
a["陈友谅"] = 30
print(a)

结果如下:

直接赋值时,键已存在则更新值,不存在则新增键值对

2.4.2 dict.update()方法

dict.update()方法的参数是关键字参数或者字典,示例如下:

# 参数为关键字参数,参数不能以数字开头,key不存在则增加,存在则更新value
a = {"张无忌": 27, "赵敏": 24, "周芷若": 25}
a.update(白眉鹰王=80, 成昆=50, 张无忌=30)
print(a)

# 参数为字典,key不存在则增加,存在则更新value
b = {"张无忌": 27, "赵敏": 24, "周芷若": 25}
c = {"白眉鹰王": 80, "成昆": 50, "张无忌": 30}
b.update(c)
print(b)

结果如下:

2.5 删

2.5.1 del()函数

del()函数通过指定键的方法删除键值对,示例如下:

a = {"张无忌": 27, "赵敏": 24, "周芷若": 25}
del a["张无忌"]
print(a)

结果如下:

2.5.2 pop()方法

pop()方法通过指定键的方法删除键值对,并返回对应的值,示例如下:

a = {"张无忌": 27, "赵敏": 24, "周芷若": 25}
b = a.pop("张无忌")
print(a)
print(b)

结果如下:

2.5.3 clear()方法

clear()方法清空字典所有元素,保留空字典,示例如下:

a = {"张无忌": 27, "赵敏": 24, "周芷若": 25}
a.clear()
print(a)

结果如下:

hmoban主题是根据ripro二开的主题,极致后台体验,无插件,集成会员系统
自学咖网 » Python 字典