当前位置: 首页 > article >正文

9.30Python基础-元组(补充)、字典、集合

Python元组(tuple)补充

1、元组的不可变性

元组(tuple)是Python中的一种内置数据类型,用于存储不可变的序列。虽然元组本身不可变,但元组内的元素如果是可变对象(如列表),则其内容可以改变。

示例:元组连接

tup1 = (12, 34.56)
tup2 = ('abc', 'xyz')
# 合并元组
tup3 = tup1 + tup2
print(tup3)

注意:以下操作是非法的

# tup1[0] = 100  # 尝试修改元组元素将引发错误

2、删除整个元组

元组不能删除单个元素,但可以使用del语句删除整个元组。

示例:删除元组

tup = ('openAI', 'hqyj', 100, 200)
print(tup)
del tup
# print(tup)  # 此行代码将引发错误,因为tup已被删除

3、元组运算

元组支持一些基本运算,如连接、复制和成员检查。

示例:元组运算

# 连接元组
print((1, 2, 3) + (4, 5, 6))
# 复制元组
print(('Hi!',) * 4)
# 成员检查
print(3 in (1, 2, 3))
# 迭代元组
for x in (1, 2, 3):
    print(x)

4、元组不可变性的实质

元组的不可变性是指其内存地址指向的数据不可变,但元组内可变对象的内容可以改变。

示例:元组内可变对象

tup = (1, 2, [3, 4], 5)
# 以下操作是合法的
tup[2].append(6)
print(tup)

7、元组常用API

Python提供了几个内置函数来处理元组。

示例:使用元组API

# 计算元组长度
print(len((1, 2, 3)))
# 获取元组中的最大值
print(max((1, 2, 3)))
# 获取元组中的最小值
print(min((1, 2, 3)))
# 将列表转换为元组
print(tuple([1, 2, 3]))

Python字典(dict)

字典(dict)是Python中的一种内置数据类型,用于存储键值对。字典是可变的,可以根据需要添加、修改或删除键值对。

1、创建字典

字典可以通过多种方式创建,但不应使用dict作为变量名。

示例:创建字典

d1 = {}  # 创建空字典
d2 = dict()  # 使用内建函数创建字典
d3 = {"name": "karen", "age": 23}
d4 = dict({"name": "jack", "age": 24})
print(d3)  # 打印字典
print(len(d3))  # 查看字典的长度
print(type(d3))  # 查看类型

2、访问字典值

可以通过键来访问字典中的值。

示例:访问字典值

mydic = {'Name': 'hqyj', 'Age': 7, 'Class': 'First'}
print(mydic['Name'])
print(mydic['Age'])

注意:访问不存在的键将引发错误

# print(mydic['Alice'])  # 此行代码将引发错误

3、修改字典

可以向字典中添加新的键值对或修改现有的键值对。

示例:修改字典

mydic = {'Name': 'hqyj', 'Age': 7, 'Class': 'First'}
mydic['Age'] = 8  # 更新值
mydic['School'] = "华清"  # 添加新的键值对
print(mydic['Age'])
print(mydic['School'])

4、删除字典元素

可以使用del语句或字典方法来删除字典中的元素。

示例:删除字典元素

mydic = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
del mydic['Name']  # 删除键 'Name'
mydic.clear()      # 清空字典
# del mydic         # 删除整个字典

5、字典常用API

操作字典的函数:

序号函数描述
1len(dict)计算字典元素个数,即键的总数。
2str(dict)输出字典,可以打印的字符串表示。
3type(variable)返回输入的变量类型,如果变量是字典就返回字典类型。

字典的方法:

序号函数及描述
1dict.clear()删除字典内所有元素
2dict.copy()返回一个字典的浅复制
3dict.fromkeys(seq)创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值
4dict.get(key, default=None)返回指定键的值,如果键不在字典中返回 default 设置的默认值
5key in dict如果键在字典dict里返回true,否则返回false
6dict.items()以列表返回一个视图对象
7dict.keys()返回一个视图对象
8dict.setdefault(key, default=None)和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default
9dict.update(dict2)把字典dict2的键/值对更新到dict里
10dict.values()返回一个视图对象
11pop(key,default)删除字典 key(键)所对应的值,返回被删除的值。
12popitem()返回并删除字典中的最后一对键和值。

Python集合(set)

集合(set)是Python中的一种内置数据类型,用于存储无序且不重复的元素集合。集合非常适合于需要进行成员检测、消除重复元素以及执行集合理论运算(如并集、交集和差集)的场景。

1、创建集合

可以使用大括号或set()函数来创建集合,但请注意区分空集合与空字典。

示例:创建集合

# 使用大括号创建集合
set1 = {1, 2, 3, 4}
print("集合 set1:", set1)
# 使用 set() 函数从列表创建集合
set2 = set([4, 5, 6, 7])
print("集合 set2:", set2)
# 使用 set() 函数从元组创建集合
set3 = set((4, 5, 6, 7))
print("集合 set3:", set3)

2、添加元素

可以向集合中添加单个元素或多个元素。

示例:添加元素到集合

s1 = set((4, 5, 6, 7))
s1.add(100)  # 添加单个元素
print("添加单个元素后的集合 s1:", s1)
s1.update([200, 300])  # 添加多个元素,可以是列表、元组、字典等
print("添加多个元素后的集合 s1:", s1)

3、移除元素

可以使用remove()discard()pop()方法来移除集合中的元素。

示例:移除集合中的元素

s1 = {10, 20, 30}
s1.remove(20)  # 移除元素,如果元素不存在则引发错误
print("移除元素后的集合 s1:", s1)
s1.discard(40)  # 移除元素,如果元素不存在不会引发错误
print("尝试移除不存在的元素后的集合 s1:", s1)
s1.pop()  # 随机移除并返回一个元素
print("随机移除元素后的集合 s1:", s1)

4、计算集合元素个数

使用len()函数可以计算集合中元素的数量。

示例:计算集合元素个数

s1 = {10, 20, 30}
print("集合 s1 的长度:", len(s1))  # 输出集合的长度

5、清空集合

使用clear()方法可以清空集合中的所有元素。

示例:清空集合

s1 = {10, 20, 30}
s1.clear()  # 清空集合
print("清空后的集合 s1:", s1)  # 输出空集合

6、判断元素是否在集合中

使用in关键字可以检查元素是否存在于集合中。

示例:检查元素是否存在

s1 = {10, 20, 30}
print("20 是否在集合 s1 中:", 20 in s1)  # 输出 True,因为 20 在集合中

7、集合内置方法完整API

Python集合提供了丰富的内置方法来执行集合操作。

集合的方法

方法描述
add()向集合添加元素
clear()清除集合中的所有元素
copy()返回集合的浅复制
difference()返回多个集合的差集
difference_update()移除集合中的元素,该元素在指定的集合也存在
discard()删除集合中指定的元素
intersection()返回集合的交集
intersection_update()用集合的交集更新集合
isdisjoint()判断两个集合是否包含相同的元素,如果没有返回 True
issubset()判断指定集合是否为该方法参数集合的子集
issuperset()判断该方法的参数集合是否为指定集合的超集
pop()随机移除元素
remove()移除指定元素
symmetric_difference()返回两个集合中不重复的元素集合
symmetric_difference_update()用集合的对称差集更新集合
union()返回两个集合的并集
update()更新集合,添加指定集合中的元素
len()计算集合元素个数
使用这些方法,可以灵活地对集合进行操作以满足不同的需求。

http://www.kler.cn/news/328165.html

相关文章:

  • linux配置git
  • 2024年10月HarmonyOS应用开发者高级认证全新题库
  • DC00024基于ssm实验室预约管理系统java web项目web教师预约jsp预约管理系统
  • 【mysql】理解一条sql的执行流程
  • 电气工程师面试必备:全面解析常见面试问题及答案
  • Python面试题精选及解析--第二篇
  • 深度解析:Python蓝桥杯青少组精英赛道与高端题型概览
  • Java 安全认证和 Hadoop UGI 原理解析
  • Vue3 组件中使用 SCSS 变量
  • 什么是大语言模型,一句话解释
  • Kubernetes从零到精通(17-扩展-Operator模式)
  • 技术成神之路:设计模式(十七)组合模式
  • 数字安全二之密钥结合消息摘要
  • 【systemctl start jenkins】启动报错问题解决
  • python 实现knapsack背包问题算法
  • Matlab进阶绘图第69期—同步坐标图
  • ip是可以从能够上网的设备提取吗
  • 继承实现单例模式的探索(二)
  • Ubuntu Server 20.04 64bit定时备份MySQL8.0.36数据库数据
  • FFMPEG总结——底层调用COM导致编码器无法正常打开
  • 51单片机系列-串口(UART)通信技术
  • Java网络通信—UDP
  • Xshell7下载及服务器连接
  • 九、设备的分配与回收
  • 单片机的两种看门狗原理解析——IWDG和WWDG
  • 使用 Light Chaser 进行大屏数据可视化
  • onload_tcpdump命令抓包报错Onload stack [7,] already has tcpdump process
  • c语言基础作业
  • Java面试必杀技为什么面试官都爱问源码?
  • 苹果盛宴:iPhone 16系列领衔,智能穿戴新潮流来袭