最新要闻

广告

手机

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

家电

天天速讯:09字典(dict)与集合(set)

来源:博客园


(资料图)

字典(dict)与集合(set)

字典的格式

>- dict_data = { key : value , key1 : value1 }>- 1)符号以大括号表示>- 2)数据是以键值对出现的,键值中间用冒号连接>- 3)key的数据必须是不可变类型,key是不重复的>- 字典是可变数据类型>- 空字典 dict_data = {}或dict_data = dict()

  • 手动方式创建
# 有数据字典dict1 = {"name": "张三", "age": 20, "gender": "男"}

> 注意:⼀般称冒号前⾯的为键(key),简称k;冒号后⾯的为值(value),简称v。

  • 使用内置函数dict()创建
a_dict = dict(name="DYX", age=24)  # 键=值对print(a_dict)  # {"age": 24, "name": "DYX"}

字典的常规操作

字典没有索引,是无序的

字典可以根据key获取value

dict_data = {"小明": 20, "小芳": {"age": 18, "gender": "女"}}print(dict_data["小芳"])      # {"age": 18, "gender": "女"}print(dict_data["小芳"]["gender"])    # 女

增加数据

dict_data = {"小明": 20}dict_data["小芳"] = 18print(dict_data)    # {"小明": 20, "小芳": 18}

字典修改

dict_data = {"小明": 20}dict_data["小明"] = {"age": 18, "gender": "男"}print(dict_data)    # {"小明": {"age": 18, "gender": "男"}}

字典删除

dict_data = {"小明": 20}del dict_data["小明"]print(dict_data)# {}

常用方法

方法描述
get()获取一个数据,如果存在则返回其value,不存在则返回None
pop()删除指定key的数据
popitem()删除字典的最后一个数据
update()更新数据
keys()获取字典是所有key,存放在以地dict_key对象里面
values()获取字典中所有的value
items()以列表返回可遍历的(键值)元组数组
clear()清空字典中的数据
copy()复制字典
# get() 获取一个数据,如果存在则返回其value,不存在则返回None# None是可以改变的,当不存在时返回这个位置的数据,默认为Nonedict_data = {"小明": 20}print(dict_data.get("小明"))      # 20# dict_data.get("小明", None)print(dict_data.get("小明1"))     # None# 修改Noneprint(dict_data.get("小明1", False))  # False# pop() 删除指定key的数据dict_data = {"小明": 20}dict_data.pop("小明")print(dict_data)    # {}# popitem() 删除字典的最后一个数据dict_data = {"小明": 20, "小芳": 18}dict_data.popitem()print(dict_data)   # {"小明": 20} # update() 更新数据dict_data = {"小明": 20, "小芳": 18}dict_data.update({"小刚": 19, "小李": 21})print(dict_data)    # {"小明": 20, "小芳": 18, "小刚": 19, "小李": 21}# keys() 获取字典是所有key,存放在以地dict_key对象里面dict_data = {"小明": 20, "小芳": 18}print(dict_data.keys())     # dict_keys(["小明", "小芳"])print(type(dict_data.keys()))   # # values() 获取字典中所有的valuedict_data = {"小明": 20, "小芳": 18}print(dict_data.values())# dict_values([20, 18])# items() 以列表返回可遍历的(键值)元组数组dict_data = {"小明": 20, "小芳": 18}print(dict_data.items())   # dict_items([("小明", 20), ("小芳", 18)])

补充:压缩和解包

# 压缩 压缩数据到一个变量里面,以元组的方式存储a = "小明", 18print(a)    # ("小明", 18)# 解包name, age = aprint(name, age)    # 小明 18dict_data = {"小明": 20, "小芳": 18}print(dict_data.items()) # dict_items([("小明", 20), ("小芳", 18)])for i in dict_data.items():    print(i)# ("小明", 20)# ("小芳", 18)# for i in dict_data.items():#    print(i[0], i[1])for name, age in dict_data.items():    print(name, age)# 小明 20# 小芳 18# 后面这两种方式输出结果一样,但推荐使用第二种解包的方式,这样变量有更明确的描述,方便使用

字典的循环遍历

# 遍历字典(不支持while循环)# 方式1:通过获取到全部的key来完成遍历for key in 字典.keys():    print(f"字典的key是:{key}")    print(f"字典的value是:{字典[key]}")# 方式2:直接对字典进行for循环,每一次循环都是直接得到keyfor key in 字典:    print(f"字典的key是:{key}")    print(f"字典的value是:{字典[key]}")

集合的格式

  • set_data =
  • 无序且唯一(数据不重复)
  • 集合没有索引和key,故集合不能修改数据

集合的常规操作

# 定义空集合my_set_empty = set()特点:不能重复,且无序注意:不支持下标索引访问# 添加新元素语法:集合.add(元素)# 删除数据语法:集合.remove(元素)# 随机取出元素pop语法:集合.pop()# 取出两个集合的差集语法:集合1.difference(集合2)功能:取出集合1和集合2的差集(集合1有而集合2没有的)结果:得到一个新集合,集合1和集合2不变# 消除2个集合的交集语法:集合1.difference_update(集合2)功能:对比集合1和集合2,在集合1内,删除和集合2相同的元素。结果:集合1被修改,集合2不变# 集合的合并语法:集合1.union(集合2)功能:将集合1和集合2组合成新集合结果:得到新集合,集合1和集合2不变# 集合的遍历注意:集合不支持下标,不能用while循环,可以用for循环```

关键词: