【深度学习】 Python 和 NumPy 系列教程(四):Python容器:2、元组tuple详解(初始化、索引和切片、元组特性、常用操作、拆包、遍历)

目录

一、前言

二、实验环境

三、Python容器(Containers)

0、容器介绍

1、列表(List)

2、元组(Tuple)

[1. 初始化](#1. 初始化)

[a. 使用小括号()](#a. 使用小括号())

[b. 省略小括号](#b. 省略小括号)

[c. tuple() 函数](#c. tuple() 函数)

[2. 访问元组元素](#2. 访问元组元素)

[a. 索引](#a. 索引)

[b. 切片](#b. 切片)

[3. 元组的特性](#3. 元组的特性)

[a. 不可变](#a. 不可变)

[b. 包含不同类型](#b. 包含不同类型)

[c. 可嵌套](#c. 可嵌套)

[4. 元组的常用操作](#4. 元组的常用操作)

[a. 元组长度](#a. 元组长度)

[b. 元素计数](#b. 元素计数)

[c. 元组拼接](#c. 元组拼接)

[d. 元组重复](#d. 元组重复)

[e. 检查元素是否存在于元组中](#e. 检查元素是否存在于元组中)

[5. 拆包](#5. 拆包)

[6. 遍历](#6. 遍历)

[a. for 循环](#a. for 循环)

[b. enumerate()函数](#b. enumerate()函数)


一、前言

Python是一种高级编程语言,由Guido van Rossum于1991年创建。它以简洁、易读的语法而闻名,并且具有强大的功能和广泛的应用领域。Python具有丰富的标准库和第三方库,可以用于开发各种类型的应用程序,包括Web开发、数据分析、人工智能、科学计算、自动化脚本等。

Python本身是一种伟大的通用编程语言,在一些流行的库(numpy,scipy,matplotlib)的帮助下,成为了科学计算的强大环境。本系列将介绍Python编程语言和使用Python进行科学计算的方法,主要包含以下内容:

  • Python:基本数据类型、容器(列表、元组、集合、字典)、函数、类
  • Numpy:数组、数组索引、数据类型、数组数学、广播
  • Matplotlib:绘图,子图,图像
  • IPython:创建笔记本,典型工作流程

二、实验环境

Python 3.7

运行下述命令检查Python版本

bash 复制代码
 python --version 

三、Python容器(Containers)

0、容器介绍

Python中的容器是用于存储和组织数据的对象。常见的容器包括列表(List)、元组(Tuple)、集合(Set)和字典(Dictionary)。

  • 列表是有序的可变容器,可以包含不同类型的元素,使用方括号([])来创建。
python 复制代码
my_list = [1, 2, 3, 'a', 'b', 'c']
  • 元组是有序的不可变容器,也可以包含不同类型的元素,使用圆括号(())来创建。
python 复制代码
my_tuple = (1, 2, 3, 'a', 'b', 'c')
  • 集合是无序且不重复的容器,用于存储唯一的元素,使用大括号({})或者set()函数来创建。
python 复制代码
my_set = {1, 2, 3, 'a', 'b', 'c'}
  • 字典是无序的键值对容器,用于存储具有唯一键的值,使用花括号({})或者dict()函数来创建。
python 复制代码
my_dict = {'name': 'Alice', 'age': 25, 'city': 'New York'}

这些容器都提供了不同的方法和操作,用于对数据进行存储、访问和处理。可以根据具体的需求选择适合的容器类型。

1、列表(List)

【深度学习】 Python 和 NumPy 系列教程(三):Python容器:1、列表List详解(初始化、索引、切片、更新、删除、常用函数、拆包、遍历)_QomolangmaH的博客-CSDN博客https://blog.csdn.net/m0_63834988/article/details/132768246?spm=1001.2014.3001.5501

2、元组(Tuple)

元组(tuple)是Python中的一种序列类型,类似于列表,它可以存储多个元素。与列表不同的是,元组是不可变的,一旦创建后就不能修改

1. 初始化

a. 使用小括号()

my_tuple = ()

这种方式创建的元组是空的,不包含任何元素。

使用小括号()和逗号分隔的元素创建元组:

my_tuple = (1, 2, 3)

b. 省略小括号

my_tuple = 1, 2, 3

逗号分隔的元素会被组合成一个元组。省略了小括号,但是仍然是一个元组。

c. tuple() 函数

tuple()函数可以将其他可迭代对象(如列表、字符串、字典等)转换为元组。

  • 将列表转换为元组:
python 复制代码
my_list = [1, 2, 3, 4, 5]
my_tuple = tuple(my_list)
print(my_tuple)  # 输出:(1, 2, 3, 4, 5)
  • 将字符串转换为元组:
python 复制代码
my_string = "Hello, World!"
my_tuple = tuple(my_string)
print(my_tuple)  # 输出:('H', 'e', 'l', 'l', 'o', ',', ' ', 'W', 'o', 'r', 'l', 'd', '!')
  • 将字典转换为元组:
python 复制代码
my_dict = {'a': 1, 'b': 2, 'c': 3}
my_tuple = tuple(my_dict)
print(my_tuple)  # 输出:('a', 'b', 'c')

2. 访问元组元素

a. 索引

python 复制代码
# 使用索引访问元组中的特定元素
print(my_tuple[0])      # 输出:a
print(my_tuple[-1])      # 输出:d

b. 切片

python 复制代码
# 使用切片操作获取元组的子序列
print(my_tuple[1:3])    # 输出:('b', 'c')
print(my_tuple[1:])     # 输出:('b', 'c', 'd')
print(my_tuple[:])      # 输出:('a', 'b', 'c', 'd')
print(my_tuple[1:-1])   # 输出:('b',)
print(my_tuple[:-1])    # 输出:('a', 'b', 'c')

3. 元组的特性

a. 不可变

元组是不可变的,一旦创建后,不能修改元组的元素。无法对元组中的元素进行增加、删除或修改操作。

python 复制代码
my_tuple = (1, 2, 3)
my_tuple[0] = 4  # 会引发一个类型错误(TypeError: 'tuple' object does not support item assignment)

b. 包含不同类型

元组可以包含不同类型的元素,例如整数、字符串、浮点数等。

python 复制代码
my_tuple = (1, "hello", 3.14)

c. 可嵌套

元组可以嵌套,即元组中可以包含其他元组作为元素。

python 复制代码
# 访问元组中的元素
element1 = nested_tuple[0]
print(element1)  # 输出: (1, 'hello')
print(nested_tuple[2][0])  # 输出: world

4. 元组的常用操作

a. 元组长度

b. 元素计数

c. 元组拼接

d. 元组重复

e. 检查元素是否存在于元组中

python 复制代码
my_tuple = (1, 2, 3)

# 获取元组的长度
print(len(my_tuple))  # 输出:3

# 元素计数
print(my_tuple.count(2))  # 输出: 1(元素2在元组中出现的次数)

# 元组拼接
new_tuple = my_tuple + (4, 5)
print(new_tuple)  # 输出:(1, 2, 3, 4, 5)

# 元组重复
repeated_tuple = my_tuple * 2
print(repeated_tuple)  # 输出:(1, 2, 3, 1, 2, 3)

# 检查元素是否存在于元组中
print(2 in my_tuple)  # 输出:True
print(4 not in my_tuple)  # 输出:True

5. 拆包

元组拆包(元组解构、Tuple Unpacking)是一种将元组的元素赋值给多个变量的方法。通过元组解构,可以方便地将元组中的值分配给对应的变量。

python 复制代码
my_tuple = (1, 2, 3)
a, b, c = my_tuple
print(a)  # 输出:1
print(b)  # 输出:2
print(c)  # 输出:3

在这个例子中,元组my_tuple包含了三个元素,分别是1、2和3。通过元组解构,我们将这三个值分别赋给了变量abc。结果是变量a的值为1,变量b的值为2,变量c的值为3。

需要注意的是,变量的数量必须与元组中的元素数量相同,否则会引发异常。

  • 变量的数量少于元组中的元素数量:
python 复制代码
my_tuple = (1, 2, 3)
a, b = my_tuple
python 复制代码
ValueError: too many values to unpack (expected 2)
  • 变量的数量多于元组中的元素数量:
python 复制代码
my_tuple = (1, 2, 3)
a, b, c, d = my_tuple
bash 复制代码
ValueError: not enough values to unpack (expected 4, got 3)

6. 遍历

a. for 循环

python 复制代码
my_tuple = (1, 2, 3, 4, 5)
for element in my_tuple:
    print(element)

b. enumerate()函数

python 复制代码
my_tuple = (1, 2, 3, 4, 5)

for index, element in enumerate(my_tuple):
    print(f"Index: {index}, Element: {element}")
相关推荐
肥猪猪爸5 分钟前
使用卡尔曼滤波器估计pybullet中的机器人位置
数据结构·人工智能·python·算法·机器人·卡尔曼滤波·pybullet
LZXCyrus34 分钟前
【杂记】vLLM如何指定GPU单卡/多卡离线推理
人工智能·经验分享·python·深度学习·语言模型·llm·vllm
Enougme37 分钟前
Appium常用的使用方法(一)
python·appium
懷淰メ42 分钟前
PyQt飞机大战游戏(附下载地址)
开发语言·python·qt·游戏·pyqt·游戏开发·pyqt5
hummhumm1 小时前
第 22 章 - Go语言 测试与基准测试
java·大数据·开发语言·前端·python·golang·log4j
YRr YRr1 小时前
深度学习神经网络中的优化器的使用
人工智能·深度学习·神经网络
hummhumm1 小时前
第 28 章 - Go语言 Web 开发入门
java·开发语言·前端·python·sql·golang·前端框架
幻风_huanfeng1 小时前
人工智能之数学基础:线性代数在人工智能中的地位
人工智能·深度学习·神经网络·线性代数·机器学习·自然语言处理
每天吃饭的羊2 小时前
python里的数据结构
开发语言·python
卡卡_R-Python2 小时前
UCI Heart Disease Data Set—— UCI 心脏病数据集介绍
python·plotly·django·virtualenv·pygame