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 字典和集合的主要内容,如果未能解决你的问题,请参考以下文章