【Python】8/17:字典与集合
字典
- 字典是 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})
集合运算
集合之间也可进行数学集合运算(例如:并集、交集等),可用相应的操作符或方法来实现。
