天元组,集合

天元组,集合

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

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

t = (10, 20, 30)print(t)  # 输出: (10, 20, 30)print(type(t))  # 输出: <class 'tuple'>for num in t:    print(num)  # 输出: 10, 20, 30 (依次输出)total = 0for num in t:    total += numprint(total)  # 输出: 60t[0] = 100  # 这将引发 TypeError: 'tuple' object does not support item assignment

元组的打包与解包

打包: 将多个值组合成一个元组。例如:my_tuple = (1, 2, 3)解包: 将元组的元素分配给多个变量。例如:a, b, c = my_tuple

# 元组打包t = 10, 20, 30print(t)  # 输出: (10, 20, 30)# 元组解包no1, no2, no3 = tprint(no1)  # 输出: 10print(no2)  # 输出: 20print(no3)  # 输出: 30

元组的操作

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

t = 10, 20, 30, 40, 50, 60print(t[:2])  # 输出: (10, 20)t1 = 10, 20, 30t2 = 40, 50, 60print(t1 + t2)  # 输出: (10, 20, 30, 40, 50, 60)print(t1 * 3)  # 输出: (10, 20, 30, 10, 20, 30, 10, 20, 30)print(10 in t1)  # 输出: Trueprint(10 not in t1)  # 输出: Falset1 = 10, 20, 30, 40, 50, 60, 10print(t1.count(10))  # 输出: 2print(t1.index(20))  # 输出: 1print(sorted(t1))  # 输出: [10, 10, 20, 30, 40, 50, 60]print(sorted(t1, reverse=True))  # 输出: [60, 50, 40, 30, 20, 10, 10]

嵌套元组

元组可以嵌套:

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

练习:元组操作

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 240print()# c) 每个列表的第二个元素for inner in data:    print(inner[1], end=' ')  # 输出: 20 50 80print()

eval() 函数

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

t = eval(input("输入元组元素,用逗号分隔: "))print(type(t))print(t)

next() 函数

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

t = (no for no in range(1, 11))print(next(t))  # 输出: 1print(next(t))  # 输出: 2print(next(t))  # 输出: 3print(next(t))  # 输出: 4

is==区别

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

l1 = [10, 20, 30]l2 = l1print(id(l1))print(id(l2))print(l1 == l2)  # 输出: Trueprint(l1 is l2)  # 输出: Truel2 = list(l1)  # 创建一个新的列表print(id(l2))print(l1 == l2)  # 输出: Trueprint(l1 is l2)  # 输出: False

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

元组与列表的比较

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

import sysl = [10, 20, 30, 40]t = (10, 20, 30, 40)print(sys.getsizeof(l))  # 列表的大小print(sys.getsizeof(t))  # 元组的大小

集合

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

集合操作:

union()|: 并集intersection()&: 交集difference()-: 差集symmetric_difference()^: 对称差集

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}

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

练习:集合操作

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) 对称差集

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

以上就是天元组,集合的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1355224.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月13日 19:06:16
下一篇 2025年12月13日 19:06:26

相关推荐

  • 了解 OpenAI JSONL 格式:组织记录

    早期邮政分拣系统面临的挑战,与如今使用大型语言模型 (LLM) 类似。 如同早期邮局因处理邮件数量不足而导致信件退回,不正确的输入格式也会导致 LLM 微调失败或效果不佳。OpenAI 使用 JSONL (JSON Lines) 格式作为微调数据的标准,确保数据结构化并易于处理。 JSONL 格式的…

    好文分享 2025年12月13日
    000
  • 在 PyTorch 中排列

    pytorch 的 torch.arange() 函数详解:创建数值序列张量 本文将详细介绍 PyTorch 中 torch.arange() 函数的功能、参数以及使用方法,并辅以代码示例。torch.arange() 函数用于创建包含指定范围内的数值序列的张量。 函数签名: torch.arang…

    2025年12月13日
    000
  • 【Python】B站视频评论和弹幕处理分析脚本

    免责声明: 本脚本仅供个人学习和研究使用,禁止用于任何商业或非法用途。 概述 本Python脚本旨在辅助人文学科研究,特别是网络平台话语分析。它能够全面收集和分析B站视频的弹幕和评论数据,尤其适用于对亚文化和社会议题相关的海量内容进行深入研究、分析、补充和总结。 功能与原理 立即学习“Python免…

    2025年12月13日
    000
  • Python 中的排序数据结构

    Python 提供多种工具和库来处理排序数据结构,这些结构在保持数据顺序的同时优化搜索、插入和删除操作。本文将介绍以下几种排序数据结构: 堆 (Heap)排序列表 (Sorted List)排序字典 (Sorted Dict)排序集合 (Sorted Set) 堆模块 (heapq) Python …

    2025年12月13日
    000
  • 初学者 Python 项目:使用 OpenCV 和 Mediapipe 构建增强现实绘图应用程序

    本Python项目构建一个简单的增强现实(AR)绘图应用程序。利用摄像头和手势,您可以在屏幕上进行虚拟绘画,自定义画笔,甚至保存您的作品! 项目设置 首先,创建一个新文件夹,并使用以下命令初始化新的虚拟环境: python -m venv venv./venv/scripts/activate 然后…

    2025年12月13日
    000
  • 今年最佳编程语言

    本文盘点了2025年表现优异的编程语言,并对其特性及常用库进行了简要概述。 Python: 以其易用性和强大的库而著称,应用范围广泛。 数据科学: NumPy, Pandas, Scikit-learn, TensorFlow, PyTorchWeb开发: Django, Flask自动化: Sel…

    2025年12月13日
    000
  • Python 的神奇方法

    深入 Python 的 __new__ 方法 Python 中,创建新对象时会调用 __new__ 方法。该方法负责创建并返回一个新的类实例。当需要自定义对象创建过程时,例如实现单例模式、对象缓存或内存管理,就需要用到 __new__ 方法。 __new__ 方法的调用时机 __new__ 方法总是…

    2025年12月13日
    000
  • 用于股票情绪分析的 Python 脚本

    python在金融领域日益普及,其应用范围广泛,从基础计算到高级股票市场数据统计分析无所不包。本文将介绍一个python脚本,它展现了python在金融领域的强大功能,能够无缝整合数据、执行复杂计算并自动化任务,成为金融专业人士的得力助手。 该脚本演示如何利用Python分析新闻标题,从中提取市场情…

    2025年12月13日
    000
  • AWS 简化:在远程服务器上无需 CLI 即可实现自动化操作

    在无AWS CLI环境下,为远程服务器上的AWS S3操作创建辅助脚本 在云计算成为现代基础架构基石的今天,高效访问AWS服务(如S3)至关重要。但如果您在未安装AWS CLI的远程Unix服务器上工作,并需要将文件上传到S3存储桶,该怎么办?本文将指导您创建一个辅助脚本,通过IAM安全访问并自动获…

    2025年12月13日
    000
  • 使用 Django 和 HTMX 创建 To-Do 应用程序 – 使用 TDD 添加 Todo 模型部分

    this is part two of our series on building a todo application with htmx and django. click here to view part 1. In Part 2, we’ll create the todo …

    2025年12月13日
    000
  • 在 Python 中创建 Stripe 测试数据

    本教程演示如何通过一个简单的python脚本,快速在stripe沙盒环境中生成测试数据,用于构建基于supabase和openai的ai聊天机器人。此方法避免了复杂命令行工具的安装,降低了学习门槛。 许多AI数据课程需要预先加载的测试数据,但Stripe沙盒环境并未提供。虽然可以使用命令行工具加载示…

    2025年12月13日
    000
  • 最小最大和 – HackerRank 问题解决

    HackerRank 的最小最大和挑战 本文将指导您解决 HackerRank 的“最小最大和”算法挑战。此挑战需要您计算给定整数数组中任意四个元素的最小和与最大和。我们将探讨 Python 和 C 语言的解决方案。 问题描述 给定一个包含 n 个整数的数组,计算该数组中任意四个元素的最小和与最大和…

    2025年12月13日
    000
  • 使用 DevTools 和 HAR 文件抓取数据

    数据抓取:高效获取blinkit产品数据,助力应用开发 对于构建应用需要真实数据的开发者来说,数据抓取是高效获取信息的关键。本文将分享如何利用Chrome DevTools和HAR文件从Blinkit平台抓取产品数据,并阐述其优势。 为何选择数据抓取构建杂货应用? 在开发杂货配送应用时,获取真实数据…

    2025年12月13日 好文分享
    000
  • 在浏览器中轻松运行Python程序

    微软开源的markitdown项目,将office文件转换为markdown格式,迅速成为github热门项目。但其python程序特性限制了非技术用户的易用性。本文介绍如何利用webassembly技术,结合pyodide在浏览器中直接运行markitdown,解决这一问题。 Pyodide是一个…

    2025年12月13日
    000
  • 如何在地图中追踪步骤,代码降临 ay 6

    advent of code 2024: day 6 – guard patrol optimization I’m a bit behind on my Advent of Code challenges this year due to unforeseen circum…

    2025年12月13日
    000
  • 使用 Python 抓取 Google 搜索结果

    利用python高效抓取google搜索结果,洞悉数据趋势! Google每天处理超过85亿次搜索,占据全球搜索引擎市场91%的份额,蕴藏着巨大的数据价值,可用于SEO优化、竞争分析、潜在客户开发,以及高级LLM模型的训练和自然语言处理能力的提升。然而,直接抓取Google数据并非易事,需要专业的技…

    2025年12月13日
    000
  • 机器学习工程师路线图

    成为机器学习工程师的阶梯式学习路径 这份路线图清晰地规划了成为机器学习工程师所需的技能学习路径,循序渐进,由浅入深,并注重实践操作。 基础阶段:夯实根基 数学基础: 扎实的数学功底是机器学习的基石。你需要掌握概率论(理解事件发生的可能性)、统计学(分析和解释数据)、以及离散数学(处理离散值)等核心概…

    2025年12月13日
    000
  • Python 最佳实践:编写简洁且可维护的代码

    Python以其简洁性和可读性而闻名,深受初学者和资深开发者的喜爱。然而,编写干净、易于维护的代码需要超越基本语法。本文将探讨一些提升Python代码质量的关键最佳实践。 PEP 8规范的力量 PEP 8是Python的代码风格指南,遵循它能显著提升代码的可读性和可维护性。以下是一些核心原则: # …

    2025年12月13日
    000
  • 新手常见的 Python 面试问题

    本文将探讨10个常见的Python面试问题,帮助应届生顺利应对面试。 1. 解释型语言的概念 解释型语言由解释器逐行执行,其动态特性深受开发者青睐,便于调试和开发,并提供即时反馈。 2. Python的主要特性 立即学习“Python免费学习笔记(深入)”; Python是一款功能强大的跨平台编程语…

    2025年12月13日
    000
  • 使用 DQN 构建国际象棋代理

    我最近尝试用dqn构建一个国际象棋ai代理。 任何了解DQN和国际象棋的人都会告诉你这是个不太现实的想法。 确实如此,但作为一名初学者,我依然乐于尝试。本文将分享我的经验和心得。 环境理解 在实现代理之前,我需要熟悉环境并创建一个自定义包装器,以便在训练过程中与代理交互。 我使用了kaggle_en…

    2025年12月13日 好文分享
    000

发表回复

登录后才能评论
关注微信