0

0

天元组,集合

碧海醫心

碧海醫心

发布时间:2025-01-01 08:00:21

|

587人浏览过

|

来源于php中文网

原创

天元组,集合

元组:Python 中有序、不可变的数据结构

元组是 Python 中一种内置的数据结构,它以固定顺序存储多个项目。 一旦创建,元组的内容就不能更改。与列表类似,元组可以包含重复的值和混合数据类型(其他元组、列表、数字、字符串等)。 元组的元素可以通过索引访问,索引从 0 开始。元组用圆括号 () 表示。

<code class="python">t = (10, 20, 30)
print(t)  # 输出: (10, 20, 30)
print(type(t))  # 输出: <class 'tuple'>

for num in t:
    print(num)  # 输出: 10, 20, 30 (依次输出)

total = 0
for num in t:
    total += num
print(total)  # 输出: 60

t[0] = 100  # 这将引发 TypeError: 'tuple' object does not support item assignment</code>

元组的打包与解包

  • 打包: 将多个值组合成一个元组。例如:my_tuple = (1, 2, 3)
  • 解包: 将元组的元素分配给多个变量。例如:a, b, c = my_tuple
<code class="python"># 元组打包
t = 10, 20, 30
print(t)  # 输出: (10, 20, 30)

# 元组解包
no1, no2, no3 = t
print(no1)  # 输出: 10
print(no2)  # 输出: 20
print(no3)  # 输出: 30</code>

元组的操作

元组支持切片、连接、成员资格测试等操作:

<code class="python">t = 10, 20, 30, 40, 50, 60
print(t[:2])  # 输出: (10, 20)

t1 = 10, 20, 30
t2 = 40, 50, 60
print(t1 + t2)  # 输出: (10, 20, 30, 40, 50, 60)

print(t1 * 3)  # 输出: (10, 20, 30, 10, 20, 30, 10, 20, 30)

print(10 in t1)  # 输出: True
print(10 not in t1)  # 输出: False

t1 = 10, 20, 30, 40, 50, 60, 10
print(t1.count(10))  # 输出: 2
print(t1.index(20))  # 输出: 1
print(sorted(t1))  # 输出: [10, 10, 20, 30, 40, 50, 60]
print(sorted(t1, reverse=True))  # 输出: [60, 50, 40, 30, 20, 10, 10]</code>

嵌套元组

元组可以嵌套:

<code class="python">t = ((10, 20, 30), (40, 50, 60))
print(t)  # 输出: ((10, 20, 30), (40, 50, 60))
print(t[0])  # 输出: (10, 20, 30)
print(t[1])  # 输出: (40, 50, 60)
print(t[0][0])  # 输出: 10
print(t[1][2])  # 输出: 60

t = ([10, 20, 30], [40, 50, 60]) # 注意:列表是可变的,即使在元组内
print(t[0])  # 输出: [10, 20, 30]
print(t[0][2])  # 输出: 30</code>

练习:元组操作

<code class="python">data = ([10, 20, 30], [40, 50, 60], [70, 80, 90])

# a) 第二个列表
print(data[1])  # 输出: [40, 50, 60]

# b) 列表总和
for inner in data:
    total = sum(inner)  # 使用sum()函数简化计算
    print(total, end=' ')  # 输出: 60 150 240
print()

# c) 每个列表的第二个元素
for inner in data:
    print(inner[1], end=' ')  # 输出: 20 50 80
print()</code>

eval() 函数

eval() 函数可以将字符串作为 Python 表达式执行,但使用时需谨慎,因为它可能存在安全风险。

<code class="python">t = eval(input("输入元组元素,用逗号分隔: "))
print(type(t))
print(t)</code>

next() 函数

next() 函数返回迭代器的下一个元素。

360 AI助手
360 AI助手

360公司推出的AI聊天机器人聚合平台,集合了国内15家顶尖的AI大模型。

下载
<code class="python">t = (no for no in range(1, 11))
print(next(t))  # 输出: 1
print(next(t))  # 输出: 2
print(next(t))  # 输出: 3
print(next(t))  # 输出: 4</code>

is== 的区别

== 比较值,is 比较对象的内存地址(身份)。

<code class="python">l1 = [10, 20, 30]
l2 = l1
print(id(l1))
print(id(l2))
print(l1 == l2)  # 输出: True
print(l1 is l2)  # 输出: True

l2 = list(l1)  # 创建一个新的列表
print(id(l2))
print(l1 == l2)  # 输出: True
print(l1 is l2)  # 输出: False</code>

对于元组,由于不可变性,is== 的结果可能相同,因为 Python 可能会复用内存。

元组与列表的比较

元组不可变,列表可变;元组通常比列表占用更少的内存,访问速度也更快。

<code class="python">import sys
l = [10, 20, 30, 40]
t = (10, 20, 30, 40)
print(sys.getsizeof(l))  # 列表的大小
print(sys.getsizeof(t))  # 元组的大小</code>

集合

集合是无序、不可变、不包含重复元素的集合。

集合操作:

  • union()|: 并集
  • intersection()&: 交集
  • difference()-: 差集
  • symmetric_difference()^: 对称差集
<code class="python">s1 = {10, 20, 30, 40}
s2 = {30, 40, 50, 60}
print(s1.union(s2))  # 输出: {10, 20, 30, 40, 50, 60}
print(s1 | s2)  # 输出: {10, 20, 30, 40, 50, 60}
# ... 其他集合操作 ...

s1 = {10, 20}
s2 = {20, 30}
s3 = {30, 40}
print(s1.union(s2, s3))  # 输出: {10, 20, 30, 40}</code>

discard()remove() 方法用于删除元素,但 remove() 在元素不存在时会引发 KeyError

练习:集合操作

<code class="python">match1 = {"sanju", "virat", "ashwin", "rohit"}
match2 = {"dhoni", "virat", "bumrah", "siraj"}

print(match1 & match2)  # a) 交集
print(match1 - match2)  # b) match1 中独有的元素
print(match2 - match1)  # c) match2 中独有的元素
print(match1 ^ match2)  # d) 对称差集</code>

请注意,代码块中的true应该改为True,因为Python中的布尔值首字母大写。 我已在输出中修正了这些错误。 此外,我将代码进行了格式化,并添加了更清晰的注释,使其更易于理解。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
数据类型有哪几种
数据类型有哪几种

数据类型有整型、浮点型、字符型、字符串型、布尔型、数组、结构体和枚举等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

335

2023.10.31

php数据类型
php数据类型

本专题整合了php数据类型相关内容,阅读专题下面的文章了解更多详细内容。

223

2025.10.31

c语言 数据类型
c语言 数据类型

本专题整合了c语言数据类型相关内容,阅读专题下面的文章了解更多详细内容。

138

2026.02.12

js 字符串转数组
js 字符串转数组

js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

718

2023.08.03

js截取字符串的方法
js截取字符串的方法

js截取字符串的方法有substring()方法、substr()方法、slice()方法、split()方法和slice()方法。本专题为大家提供字符串相关的文章、下载、课程内容,供大家免费下载体验。

219

2023.09.04

java基础知识汇总
java基础知识汇总

java基础知识有Java的历史和特点、Java的开发环境、Java的基本数据类型、变量和常量、运算符和表达式、控制语句、数组和字符串等等知识点。想要知道更多关于java基础知识的朋友,请阅读本专题下面的的有关文章,欢迎大家来php中文网学习。

1561

2023.10.24

字符串介绍
字符串介绍

字符串是一种数据类型,它可以是任何文本,包括字母、数字、符号等。字符串可以由不同的字符组成,例如空格、标点符号、数字等。在编程中,字符串通常用引号括起来,如单引号、双引号或反引号。想了解更多字符串的相关内容,可以阅读本专题下面的文章。

649

2023.11.24

java读取文件转成字符串的方法
java读取文件转成字符串的方法

Java8引入了新的文件I/O API,使用java.nio.file.Files类读取文件内容更加方便。对于较旧版本的Java,可以使用java.io.FileReader和java.io.BufferedReader来读取文件。在这些方法中,你需要将文件路径替换为你的实际文件路径,并且可能需要处理可能的IOException异常。想了解更多java的相关内容,可以阅读本专题下面的文章。

1168

2024.03.22

JavaScript浏览器渲染机制与前端性能优化实践
JavaScript浏览器渲染机制与前端性能优化实践

本专题围绕 JavaScript 在浏览器中的执行与渲染机制展开,系统讲解 DOM 构建、CSSOM 解析、重排与重绘原理,以及关键渲染路径优化方法。内容涵盖事件循环机制、异步任务调度、资源加载优化、代码拆分与懒加载等性能优化策略。通过真实前端项目案例,帮助开发者理解浏览器底层工作原理,并掌握提升网页加载速度与交互体验的实用技巧。

23

2026.03.06

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
最新Python教程 从入门到精通
最新Python教程 从入门到精通

共4课时 | 22.5万人学习

Django 教程
Django 教程

共28课时 | 4.8万人学习

SciPy 教程
SciPy 教程

共10课时 | 1.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号