【Python初级】第7讲 数据序列之字典&集合

字典

Python字典是一种无序、可变的映射类型,用于存储键和值之间的对应关系。

Python字典是使用大括号 {} 包含的键值对集合,其中每个键值对由冒号 : 分隔,不同的键值对之间用逗号 , 分隔。字典中的键必须唯一且不可变(例如字符串或数字),而值可以是任意类型的对象,包括复杂的数据类型。这种结构使得字典在存储和检索数据时非常高效,因为它利用了哈希表的特性,实现了快速的查找和更新操作。

Python字典的使用方法涉及多种操作,如创建、访问、修改、删除和遍历字典:

  • 创建:可以直接通过字面量的方式创建字典,或者通过 dict() 函数将其他可迭代的数据类型转换为字典。
字典特点:
符号为⼤括号
数据为键值对形式出现
各个键值对之间⽤逗号隔开
注意:⼀般称冒号前⾯的为键(key),简称k;冒号后⾯的为值(value),简称v
# 1.有数据的字典:name的值Tom,age的值是20,gender的值是男
dict1 = {'name':"Tome",'age':20,'gender':'男'}
print(dict1)
print(type(dict1))

# 2.创建空字典
dict2 = {}
print(dict2)
print(type(dict2))

dict3 = dict()
print(dict3)
print(type(dict3))
  • 访问:可以通过键来直接访问字典中的值。如果尝试访问不存在的键,会抛出 KeyError 异常。
注意:字典为可变类型。
dict1 = {'name':'Tom','age':20,'gender':'男'}

# 字典序列[key]=值
# id的值是110

dict1['id']=110
print(dict1)

dict1['name'] = 'ROSE'
print(dict1)
  • 修改:可以通过指定新的键值对来更新字典,如果键已经存在,则其对应的值会被更新。
注意:如果key存在则修改这个key对应的值 ;如果key不存在则新增此键值对
dict1 = {'name':'tom','age':20,'gender':'男'}

dict1['name'] = 'lily'
print(dict1)

dict1['id'] = 110
print(dict1)
  • 删除:可以使用 del 语句根据键来删除字典中的元素
dict1 = {'name':'Tom','age':20,'gender':'男'}

# del 删除字典或指定的键值对
# del(dict1)
# print(dict1)

# del dict1['name']
# del dict1['names']
# print(dict1)

# clear()
dict1.clear()
print(dict1)
  • 遍历:可以遍历字典的键、值或键值对。字典还提供了许多内置方法和属性,如 clear()copy()get()items()keys()setdefault()update() 和 values() 等,以支持更复杂的操作。
dict1 = {'name':'TOM','age':20,'gender':'男'}

# 1. 遍历key
for key in dict1.keys():
    print(key)

# 2.遍历value
for value in dict1.values():
    print(value)

# 3.遍历Items
for item in dict1.items():
    print(item)

# 4.键值对拆包
# xx.items() 返回可迭代对象,内部是元组,元组有2个数据
# 元组数据1是字典的key,元组数据2是字典的value
for key,value in dict1.items():
    # print(key)
    # print(value)
    print(f'{key},{value}')

在使用Python字典时,需要注意以下几点:

  • 键的唯一性:字典中的键必须是唯一的,如果有重复的键,后面的键值对会覆盖前面的。
  • 键的不可变性:字典的键必须是不可变的类型,如字符串、数字或元组。列表或其他字典不能作为键使用。
  • 访问不存在的键:在访问字典中不存在的键时,可以使用 get() 方法来避免 KeyError 异常,该方法允许你提供一个默认值作为第二个参数。
  • 字典的可变性:由于字典是可变的,它们本身不能作为哈希值使用,这意味着不能将字典作为其他字典的键。

总结来说,Python字典是一个非常灵活且功能强大的数据结构,适用于各种数据存储和快速检索的场景。在操作字典时,应确保键的唯一性和不可变性,并合理处理可能出现的异常情况。

集合

1、解释说明 Python中的集合(set)是一个无序的、不重复的元素序列。它的主要功能是进行成员关系测试和消除重复元素。集合对象还支持union(联合),intersection(交),difference(差)和symmetric difference(对称差集)等数学操作。

2、常见操作方法

创建集合

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

# 1.创建有数据的集合
s1 = {10,20,30,40,50} # {50, 20, 40, 10, 30} 说明集合是无序的
print(s1)

s2 = {10,30,20,40,30,20} # {40, 10, 20, 30} 说明集合是不能重复的
print(s2)

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

# 2. 创建空集合:set()
s4 = set()
print(s4)
print(type(s4))  # <class 'set'>

s5 = {} # 创建字典
print(type(s5))  # <class 'dict'>

增加数据

s1 = {10,20}
# 1.集合是可变类型
# add()
s1.add(100)
print(s1)

s1.add(100)
print(s1)

# update()  增加的是序列 集合有去重功能
s1.update([10,20,30,40,50])
print(s1)

# s1.update(100) 增加单一数据报错
print(s1)

删除数据

s1 = {10,20,30,40,50}

# remove():删除指定数据,如果数据不存在报错
# s1.remove(10)
# print(s1)
#
# s1.remove(10) # 报错
# print(s1)

# discard():删除指定数据,如果数据不存在不报错
# s1.discard(10)
# print(s1)
#
# s1.discard(10)
# print(s1)

# pop():随机删除某个数据,并返回这个数据
del_num = s1.pop()
print(del_num)
print(s1)

查找数据

in:判断数据在集合序列

not in:判断数据不在集合序列

s1 ={10,20,30,40,50}
# in 或 not in 判断数据10是否存在
print(10 in s1) # True
print(10 not in s1)  # False

求交集

s1 = {1,2,3}
s2 = {2,5,6}
# 求交集
print(s1 & s2)

求并集

s1 = {1,2,3}
s2 = {2,5,6}

# 求并集
print(s1 | s2)

求差集

s1 = {1,2,3}
s2 = {2,5,6}

# 求差集
print(s1-s2)

3、注意事项

  • 集合中的元素必须是不可变的,例如字符串、数字或元组。
  • 集合本身是可变的,可以添加或删除元素。
  • 集合中不能有可变类型的数据,例如列表、字典或其他集合。
  • 集合的交集、并集、差集等操作可以用运算符或者方法实现,但是结果都是一个新的集合,原集合不会被改变。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值