python学习笔记四:字典

本文详细介绍了Python中字典的基本概念、创建、索引、添加、删除和修改操作,以及如何使用内置函数zip()和字典方法进行排序,是Python初学者和开发者的重要参考资料。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

字典和集合一样是无序 的,不能通过索引来存取,只能通过键来存取。

字典的键必须是不可变的数据类型,如数字,字符串,元组等,列表等可变对象不能作为键。

不允许同一个键出现两次,创建时如果同一个键被赋值两次,后一个会被记住。

字典创建、添加、删除:

# 字典创建
a = {'name':'xiaobin','age':18}
print(a)
b = dict(name = 'xiaobin',age = '18')
print(b)

# 字典索引,只能通过键值索引
a['address'] #当字典中无该键时会报错
a.get('address') # 当字典中无该键时不会报错,字典也不会更新
a['address'] = a.get('address', 'anhui'),字典会更新,当字典中无该键时,返回get函数中第二个参数,如果第二个参数没传入则返回None

# 字典添加,键不重名的添加,重名的会覆盖更新
a['from'] = 'anhui'
print(a)
a.update({'hobby':'football','age':20})
print(a)

# 字典元素删除
# del a['age']与a.pop('age')都为清除该键值对
# a.clear()清空该字典
b = a.pop('age')
print(b)
print(a)

运行结果:
{'name': 'xiaobin', 'age': 18}
{'name': 'xiaobin', 'age': '18'}
{'name': 'xiaobin', 'age': 18, 'from': 'anhui'}
{'name': 'xiaobin', 'age': 20, 'from': 'anhui', 'hobby': 'football'}
18
{'name':'xiaobin'}

字典修改:

info  = {'a':[1,2,4],'b':[4,5,6]}
info['a'][2] = 3
print(info)
运行结果:{'a': [1, 2, 3], 'b': [4, 5, 6]}

字典成员关系:

#成员关系
a = {'a':1,'b':2}
print('b' in a)
运行结果:True

字典方法:

a = {'a':1,'b':2}
print(a.keys())
print(a.values())
print(a.items())

运行结果:
dict_keys(['a', 'b'])
dict_values([1, 2])
dict_items([('a', 1), ('b', 2)])

内置函数zip():

打包,将两个可迭代对象作为参数,将对象中对应元素打包成一个元组,然后返回这些元组组成的zip对象。

items = ['Fruit', 'Books', 'Others']
prices = [96, 78, 85]
a = dict(zip(items, prices))
a
>> {'Fruit': 96, 'Books': 78, 'Others': 85}

{key:value for key, value in zip(items, prices)}
>> {'Fruit': 96, 'Books': 78, 'Others': 85}

# 当元素长度不一样时,以短的作为标准进行打包
items = ['Fruit', 'Books', 'Others']
prices = [96, 78, 85, 78, 64]
a = dict(zip(items, prices))
>> {'Fruit': 96, 'Books': 78, 'Others': 85}

字典排序:

my_dict = {'b': 2, 'a': 3, 'c': 1}
sorted_dict = sorted(my_dict.items(), key=lambda x: x[0])
print(sorted_dict)
# [('a', 3), ('b', 2), ('c', 1)]
my_dict = {'b': 2, 'a': 3, 'c': 1}
sorted_dict = sorted(my_dict.items(), key=lambda x: x[1])
print(sorted_dict)
# [('c', 1), ('b', 2), ('a', 3)]

还有reverse参数,reverse=False代表默认升序,reverse=True代表降序。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

东城青年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值