Python 字典和集合

Posted yexy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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}

以上是关于Python 字典和集合的主要内容,如果未能解决你的问题,请参考以下文章

13 个非常有用的 Python 代码片段

Python代码阅读(第19篇):合并多个字典

Python字典集合结构详解

Python代码阅读(第26篇):将列表映射成字典

python-列表list- 元组(tuple)- 集合(set)-字典(dict)-实例代码

Python 字典和集合