参考文章:
http://c.biancheng.net/view/2212.html
https://www.runoob.com/python3/python3-set.html
https://www.cnblogs.com/suendanny/p/8597596.html
字典
- 字典是 Python 提供的一种常用的数据结构,它用于存放具有映射关系的数据。
- 字典是 Python 唯一的一个 映射类型,字符串、元组、列表属于序列类型。
字典的每个键值(key=>value)对用冒号( : )分割,每个对之间用逗号( , )分割,整个字典包括在花括号( { } )中 ,格式如下所示:
d = {key1 : value1, key2 : value2 }
值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。
brand = ['李宁', '耐克', '阿迪达斯']
slogan = ['一切皆有可能', 'Just do it', 'Impossible is nothing']
print('耐克的口号是:', slogan[brand.index('耐克')])
# 耐克的口号是: Just do it
dict1 = {'李宁': '一切皆有可能', '耐克': 'Just do it', '阿迪达斯': 'Impossible is nothing'}
print('耐克的口号是:', dict1['耐克'])
# 耐克的口号是: Just do it
需要指出的是,元组可以作为 dict 的 key,但列表不能作为元组的 key。这是由于 dict 要求 key 必须是不可变类型,但列表是可变类型,因此列表不能作为元组的 key。
基本用法
scores = {'语文': 89, '数学': 92, '英语': 93}
- 添加
# 对不存在的key赋值,就是增加key-value对
scores['数学'] = 93
scores[92] = 5.7
print(scores) # {'语文': 89, '数学': 93, 92: 5.7}
- 删除
# 使用del语句删除key-value对
del scores['语文']
del scores['数学']
print(scores) # {92: 5.7}
- 修改
# 对存在的key-value对赋值,改变key-value对
scores['语文'] = 94
scores['数学'] = 88
print(scores) # {'语文': 94, '数学': 88, '英语': 93}
- 判断是否包含
# 判断scores是否包含名为'英语'的key
print('英语' in scores) # True
# 判断scores是否包含名为'PORSCHE'的key
print('PORSCHE' in score) # False
print('LAMBORGHINI' not in cars) # True
列表不允许对不存在的索引赋值,但字典则允许直接对不存在的 key 赋值。
常用方法
集合
与dict类似,set也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。
集合特性:
1、元素必须是不可变类型(数字,字符串,元组),必须可ha
2、不同元素组成,如果相同就会自动去重,只保留一个。
3、集合是无序的
4、集合是可变类型
创建集合
- 定义可变集合
>>> set_test = set('hello')
>>> set_test
{'h', 'l', 'e', 'o'}
- 定义不可变集合
>>> n_set_test = frozenset(set_test)
>>> n_set_test
frozenset({'h', 'l', 'e', 'o'})
集合运算
集合之间也可进行数学集合运算(例如:并集、交集等),可用相应的操作符或方法来实现。