【Python】8/17:字典与集合


字典

  1. 字典是 Python 提供的一种常用的数据结构,它用于存放具有映射关系的数据。
  2. 字典是 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、集合是可变类型

创建集合

  1. 定义可变集合
>>> set_test = set(hello)
>>> set_test
{
          
   h, l, e, o}
  1. 定义不可变集合
>>> n_set_test = frozenset(set_test)
>>> n_set_test
frozenset({
          
   h, l, e, o})

集合运算

集合之间也可进行数学集合运算(例如:并集、交集等),可用相应的操作符或方法来实现。

经验分享 程序员 微信小程序 职场和发展