Python字典和集合

一、字典

1. 创建字典

特点:

  • 符号为大括号
  • 数据为键值对形式出现
  • 各个键值对之间用逗号隔开
# 创建有数据的字典
dict1 = {"name": "Tom", "age": 18, "gender": "男"}
print(type(dict1))
# 创建空字典
dict2 = {}
print(type(dict2))
dict3 = dict()
print(type(dict3))

2. 增加数据

字典序列[key] = 值
dict1 = {"name": "Tom", "age": 18, "gender": "男"}
dict1["name"] = "张飞"
print(dict1) 	# {'name': '张飞', 'age': 18, 'gender': '男'}
dict1["id"] = 110
print(dict1)	# {'name': '张飞', 'age': 18, 'gender': '男', 'id': 110}

注意:

  1. 如果key存在,则修改这个key对应的值,如果key不存在,则新增此键值对
  2. 字典为可变类型

3. 删除数据

  • del()/del:删除字典或删除字典中指定的键值对
dict1 = {"name": "Tom", "age": 18, "gender": "男"}
del dict1["name"]	# key不存在就会报错
print(dict1)		# {'age': 18, 'gender': '男'}
del dict1
print(dict1)	# 会报错
  • clear(): 清空字典中的数据

4. 修改数据

字典序列[key] =# key存在就修改,不存在就新增

5. 查找数据

  • key值查找
dict1 = {"name": "Tom", "age": 18, "gender": "男"}
print(dict1["name"])	# Tom
print(dict1["id"])		# 不存在,就报错

注意:如果当前查找的key存在,则返回对应的值,否则就报错

  • get()函数
字典序列.get(key, 默认值)

注意:如果当前查找的key不存在则返回第二个参数(默认值),如果省略第二个参数,则返回None

dict1 = {"name": "Tom", "age": 18, "gender": "男"}
print(dict1.get("name"))	# Tom
print(dict1.get("id", 110))		# 110
print(dict1.get("id"))	# None
  • keys():查找字典中所有的key,返回可迭代对象
dict1 = {"name": "Tom", "age": 18, "gender": "男"}
print(dict1.keys())		# dict_keys(['name', 'age', 'gender'])
  • values():查找字典中所有的value,返回可迭代对象
dict1 = {"name": "Tom", "age": 18, "gender": "男"}
print(dict1.values()) 	# dict_values(['Tom', 18, '男'])
  • items():查找字典中所有的键值对,返回可迭代对象,里面的数据是元组,元组数据1是字典的key,数据2是字典的value。
dict1 = {"name": "Tom", "age": 18, "gender": "男"}
print(dict1.items()) 	# dict_items([('name', 'Tom'), ('age', 18), ('gender', '男')])

6. 字典的循环遍历

  • 遍历字典的key
dict1 = {"name": "Tom", "age": 18, "gender": "男"}
for key in dict1.keys():
    print(key)
  • 遍历字典的value
dict1 = {"name": "Tom", "age": 18, "gender": "男"}
for value in dict1.values():
    print(value)
  • 遍历字典的items,内部是元组,元组有两个数据
dict1 = {"name": "Tom", "age": 18, "gender": "男"}
for item in dict1.items():
    print(item)
  • 遍历字典的键值对(字典拆包)
dict1 = {"name": "Tom", "age": 18, "gender": "男"}
for key, value in dict1.items():
    print(f"{key} = {value}")

二、集合

1. 创建集合

创建集合使用{}或set,但是如果要创建空集合只能使用sert(),因为{}用来创建空字典

s1 = {10, 20, 30, 40}
print(s1)  # 集合没有顺序,不支持下标操作

s2 = {10, 20, 30, 40, 10}
print(s2)  # {40, 10, 20, 30}

s3 = set("abcdefg")
print(s3)  # {'d', 'a', 'e', 'b', 'c', 'f', 'g'}

# 创建空集合
s4 = set()
print(type(s4))  # <class 'set'>
s5 = {}
print(type(s5))  # <class 'dict'>

注意:1. 集合没有顺序,不支持下标操作
2. 集合可以去重

2. 集合增加数据

  • add()
s1 = {10, 20}
s1.add(100)	# 集合是可变类型
s1.add(100)	# 集合的去重功能
s1.add([10, 20, 30])	# 会报错
s1.update([10, 20, 30])	# 增加的数据是序列
s1.update(100)	# 会报错

注意:因为集合有去重功能,所以,当向集合内追加的数据是当前集合已有的数据,则不进行任何操作。

  • update():追加的数据是序列

3. 集合删除数据

  • remove():删除集合中的指定数据,如果数据不存在则报错
s1 = {10, 20}
s1.remove(10)	# {20}
s1.remove(10)	# 报错
  • discard():删除集合中的指定数据,如果数据不存在也不会报错
  • pop():随机删除某个数据,并返回这个数据
s1 = {10, 15, 25, 35, 8}
print(s1.pop())
print(s1.pop())

4. 集合查找数据

  • in:判断数据在集合序列
  • not in :判断数据不在集合序列
s1 = {10,20,30,58}
print(10 in s1)		# True
print(10 not in s1)	# False

持续更新中。。。

下一节:Python运算符和推导式

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值