【Python】第六部分 字典

【Python】第六部分 字典



6. 字典

6.1 什么是字典?

  字典的实现原理与查字典类似,查字典是先根据部首或者拼音进行查找相对应的页码,在Python中字典是根据key去查找value的位置。

6.2 字典的特点

  1. 字典中的所有元素都是一个key-value对,key不允许重复,但是value可以重复
  2. 字典中的元素都是无序的
  3. 字典的key必须是不可变的对象
  4. 字典也可以根据需要动态地伸缩
  5. 字典会浪费较大的内存空间

6.3 字典的创建

  1. 直接写{ }
  2. 使用 dict( )函数
a = {'name': 'Jack', 'age': 18, 'gender': 'male'}
b = dict(name='mark', age=30, gender='male')
print(a, type(a))
print(b, type(b))

6.4 字典元素的获取(查找字典)

  1. 字典名.[key]
  2. 字典名.get(key)
  3. 两种方法的区别:
    • get()获取不到指定的key,返回的None,而第一种方法则是报错
    • get()可以传第二个参数,当查找不到指定的key的时候会返回该值
c = {'name': 'Jane', 'age': 19, 'gender': 'female'}
# 1. 字典名[key]
print(c['name'])  # Jane

# 2. 字典名.get(key)
print(c.get('gender'))  # female

print(c.get('address', 'China'))  # China
# get()和第一种方法的区别是:
# 获取不到指定的key,返回的None,而第一种方法则是报错
# get()可以传第二个参数,当查找不到指定的key的时候会返回该值

6.5 判断key是否存在字典中

d = {'name': 'Jane', 'age': 19, 'gender': 'female'}
print('name' in d)  # True
print('name' not in d)  # False

6.6 字典的增删改

e = {'name': 'Jane', 'age': 19, 'gender': 'female'}

del e['name']  # 删除指定的键值对
print(e)  # {'age': 19, 'gender': 'female'}

e['name'] = 'Mark'  # 增加键值对
print(e)  # {'age': 19, 'gender': 'female', 'name': 'Mark'}

e['age'] = 30  # 修改值
print(e)  # {'age': 30, 'gender': 'female', 'name': 'Mark'}

e.clear()  # 清空所有的元素
print(e)  # {}

6.7 获取字典视图

  1. 字典名.keys()      获取所有的
  2. 字典名.values()    获取所有的
  3. 字典名.items()     获取所有的键值对
# 字典名.keys() 获取所有的键
d = {'name': 'Jane', 'age': 19, 'gender': 'female'}
print(d.keys())  # dict_keys(['name', 'age', 'gender'])
print(type(d.keys()))  # <class 'dict_keys'>
# 将其转换为列表
print(list(d.keys()))  # ['name', 'age', 'gender']


# 字典名.values() 获取所有的值
print(d.values())  # dict_values(['Jane', 19, 'female'])
print(type(d.values()))  # <class 'dict_values'>
# 将其转换为列表
print(list(d.values()))  # ['Jane', 19, 'female']


# 字典名.items() 获取所有的键值对
print(d.items())  # dict_items([('name', 'Jane'), ('age', 19), ('gender', 'female')])
print(type(d.items()))  # <class 'dict_items'>
# 将其转换为列表
print(list(d.items()))  # [('name', 'Jane'), ('age', 19), ('gender', 'female')]


6.8 字典元素的遍历

f = {'name': 'Jane', 'age': 19, 'gender': 'female'}
for item in f:
    print(item, f[item], f.get(item))

6.9 字典的生成式

# 例如:下面的两个列表将他们进行打包生成字典
str1 = ['name', 'age', 'gender']
str2 = ['Jack', 18, 'female']

# i: j ,以i作为键,以j作为值,使用内置的zip()
dic = {i: j for i, j in zip(str1, str2)}
print(dic)  # {'name': 'Jack', 'age': 18, 'gender': 'female'}

总结

以上就是今天要讲的内容,希望对大家有所帮助!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值