Python 字典和集合

字典和集合基础

字典是一系列由键(key)和值(value)配对组成的元素的集合,在 Python3.7+,字典被确定为有序,而 3.6 之前是无序的,其长度大小可变,元素可以任意地删减和改变。

相比列表和元组,字典的性能更优,特别是对于查找、添加和删除操作。

集合和字典基本相同,唯一的区别是集合没有键和值的配对,是一系列无序的、唯一的元素组合。

字典和集合的创建,通常有以下几种方式:

# 创建字典
d1 = {'name': 'jason', 'age': 20, 'gender': 'male'}
d2 = dict({'name': 'jason', 'age': 20, 'gender': 'male'})
d3 = dict([('name', 'jason'), ('age', 20), ('gender', 'male')])
d4 = dict(name='jason', age=20, gender='male')
# 创建集合
s1 = {1, 2, 3}
s2 = set([1, 2, 3])

Python 中字典和集合,无论是键还是值,都可以是混合类型。

字典访问可以直接索引键,如果键不存在,则抛异常:

d1 = {'name': 'jason', 'age': 20, 'gender': 'male'}

print(d1['name'])
# 输出
jason
print(d1['test'])
# 输出
Traceback (most recent call last):
  File "test.py", line 11, in <module>
KeyError: 'test'

也可以使用 get(key, default) 函数来进行索引。如果键不存在,调用 get() 函数可以返回一个默认值。

d1 = {'name': 'jason', 'age': 20, 'gender': 'male'}

print(d1.get('name'))
# 输出
jason

print(d1.get('test', 'no'))
# 输出
no

集合并不支持索引操作,因为集合本质上是一个哈希表,和列表不一样。

想要判断一个元素在不在字典或集合内,可以用 value in dict/set 来判断。

s = {1, 2, 3}
print(1 in s)
print(10 in s)
# 输出
True
False

d = {'name': 'jason', 'age': 20}
print('name' in d)
print('test' in d)
# 输出
True
False

字典和集合的新增、删除、更新等操作:

d = {'name': 'jason', 'age': 20}
d['gender'] = 'male' # 新增元素 gender
print(d)
# 输出
{'name': 'jason', 'age': 20, 'gender': 'male'}

d['name'] = 'liw' # 修改 name 对应的值
print(d)
# 输出
{'name': 'liw', 'age': 20, 'gender': 'male'}
s = {1, 2, 3} 
s.add(4) # 新增元素 4 到集合
print(s)
# 输出
{1, 2, 3, 4}
s.remove(3) # 删除元素 3
print(s)
# 输出
{1, 2, 4}
posted @ 2021-06-24 16:48  Yexy  阅读(281)  评论(0)    收藏  举报