【100天精通python】Day8:数据结构_元组Tuple的创建、删除、访问、修改、推导系列操作

目录

1 创建元组

2 删除元组

3 访问元组元素

4  多个值的同时赋值和交换

5 修改元组元素

6  元组推导式

7 元组运算符

 8  元组常用场景

 9 元组(Tuple)和列表(List)的区别


         元组(tuple)是 Python 中的一种有序、不可变的数据结构。它类似于列表,但与列表不同的是,元组的内容一旦创建后就不能被修改。元组用圆括号 () 表示,可以包含任意类型的数据,如整数、浮点数、字符串、列表等。

        下面详细介绍元组的特性及应用示例:

1 创建元组

        元组可以用圆括号 () 或直接用逗号分隔来创建。

# 使用圆括号创建元组
t1 = (1, 2, 3)

# 使用逗号分隔创建元组
t2 = 4, 5, 6

# 元组可以包含不同类型的元素
t3 = (1, 'hello', [7, 8, 9])

2 删除元组

        在 Python 中,元组是不可变的数据结构,因此无法直接删除元组中的元素。一旦创建了元组,其中的元素是不可修改的,也无法添加或删除元素。

        如果你需要删除整个元组,你可以使用 del 关键字来删除整个元组对象,如下所示:

my_tuple = (1, 2, 3)
del my_tuple
# 尝试访问已删除的元组会引发 NameError: name 'my_tuple' is not defined

3 访问元组元素

元组中的元素可以通过索引来访问,索引从0开始。

t = (1, 2, 3, 4, 5)

# 访问第一个元素
print(t[0])  # 输出: 1

# 访问最后一个元素
print(t[-1])  # 输出: 5

4  多个值的同时赋值和交换

元组可以用于多个值的同时赋值和交换值的操作。

# 多个值同时赋值
a, b, c = (1, 2, 3)

# 交换值
x = 10
y = 20
x, y = y, x

5 修改元组元素

        在 Python 中,元组是不可变的数据结构,意味着一旦创建后,其元素不能被修改、添加或删除。如果想要修改元组的元素,只能创建一个新的元组并替换原来的元组。以下是一个示例:

# 创建一个元组
t = (1, 2, 3)

# 错误,元组不可修改
t[0] = 10

# 创建一个新的元组并替换原来的元组
t = (10, 2, 3)

 如上所示,如果想要修改元组中的元素,需要创建一个新的元组,并将修改后的值赋给新的元组。因为元组是不可变的,所以在修改元组时需要特别注意。如果需要修改元素,可以考虑使用列表(list)数据结构,因为列表是可变的,允许对元素进行增删改操作。

6  元组推导式

        元组推导式 是一种快速创建元组的方法,类似于列表推导式。它允许我们根据特定规则从一个可迭代对象中生成元组的元素。元组推导式使用圆括号 () 来定义,并且可以包含一个表达式和一个可迭代对象,通过对可迭代对象的每个元素应用表达式来生成元组的元素。

        元组推导式的一般语法如下:

new_tuple = (expression for item in iterable)

其中,expression 是一个表达式,item 是可迭代对象 iterable 中的每个元素,new_tuple 是生成的新元组。

元组推导式的用法如下示例:

示例1:生成一个包含平方数的元组

# 使用元组推导式创建包含1到10的平方数的元组
squares_tuple = tuple(i**2 for i in range(1, 11))
print(squares_tuple)

输出结果为:

(1, 4, 9, 16, 25, 36, 49, 64, 81, 100)

示例2:筛选出包含特定字符的元组

# 使用元组推导式筛选出包含字母'a'的元组元素
words_tuple = ('apple', 'banana', 'orange', 'grape', 'kiwi')
filtered_tuple = tuple(word for word in words_tuple if 'a' in word)
print(filtered_tuple)

输出结果为:

('apple', 'banana', 'grape')

示例3:生成一个包含条件判断的元组

# 使用元组推导式生成包含条件判断的元组
numbers_tuple = (i if i % 2 == 0 else i * 2 for i in range(1, 11))
print(numbers_tuple)

输出结果为:

(2, 2, 6, 4, 10, 6, 14, 8, 18, 10)

 需要注意的是,元组推导式创建的元组是不可变的,一旦生成后,其中的元素不能被修改。元组在许多场景中是非常有用的,例如当你想要创建一个不可变的数据集合或用作字典的键时。

7 元组运算符

        在 Python 中,元组支持一些基本的运算符,让你可以对元组进行操作和组合。以下是常见的元组运算符:

  1. 索引:通过索引值获取元组中的元素。例如:my_tuple[0] 获取第一个元素。
  2. 切片:通过切片获取元组的子集。例如:my_tuple[1:3] 获取从第二个到第三个元素的子集。
  3. 连接:使用加号 + 将两个元组连接成一个新的元组。例如:my_tuple1 + my_tuple2
  4. 重复:使用乘号 * 将元组重复多次。例如:my_tuple * 3 将元组重复三次。
  5. 成员资格:使用关键字 in 检查元素是否在元组中。例如:element in my_tuple 返回布尔值。
  6. 元素个数:使用 len() 函数获取元组中元素的个数。
  7. 最大值和最小值:使用 max()min() 函数获取元组中的最大值和最小值。
  8. 转换为元组:使用 tuple() 函数可以将其他序列(如列表、字符串等)转换为元组。

示例:

my_tuple = (1, 2, 3, 4, 5)

# 索引
print(my_tuple[0])  # 输出:1

# 切片
print(my_tuple[1:3])  # 输出:(2, 3)

# 连接
my_tuple2 = (6, 7)
print(my_tuple + my_tuple2)  # 输出:(1, 2, 3, 4, 5, 6, 7)

# 重复
print(my_tuple * 2)  # 输出:(1, 2, 3, 4, 5, 1, 2, 3, 4, 5)

# 成员资格
print(3 in my_tuple)  # 输出:True
print(6 in my_tuple)  # 输出:False

# 元素个数
print(len(my_tuple))  # 输出:5

# 最大值和最小值
print(max(my_tuple))  # 输出:5
print(min(my_tuple))  # 输出:1

# 转换为元组
my_list = [1, 2, 3]
print(tuple(my_list))  # 输出:(1, 2, 3)

 8  元组常用场景

  • 作为字典的键值,因为元组是不可变的,可以保证字典的键不被修改。
  • 存储数据库查询结果,避免意外修改数据。
  • 函数返回多个值时,可以将多个值打包成一个元组返回。
​
# 作为字典的键值
person1 = ('John', 30)
person2 = ('Jane', 25)

persons = {person1: 'Engineer', person2: 'Doctor'}

# 存储数据库查询结果
import sqlite3

conn = sqlite3.connect('example.db')
cursor = conn.cursor()

cursor.execute('SELECT name, age FROM employees')
results = cursor.fetchall()

# 函数返回多个值
def get_coordinates():
    x = 10
    y = 20
    return x, y

x, y = get_coordinates()

​

 9 元组(Tuple)和列表(List)的区别

 元组(Tuple)和列表(List)是 Python 中两种常用的数据结构,它们有以下主要区别:

  • 可变性(Mutability):

    • 元组是不可变的数据结构,一旦创建后,其元素不能被修改、添加或删除。这意味着元组的内容是固定的,无法进行更改。
    • 列表是可变的数据结构,可以随时修改、添加或删除其中的元素。
  • 语法表示:

    • 元组使用圆括号 () 来表示,例如:my_tuple = (1, 2, 3)
    • 列表使用方括号 [] 来表示,例如:my_list = [1, 2, 3]
  • 性能:

    • 由于元组是不可变的,它在一些操作上比列表更快速,例如访问元素、遍历等。这是因为在不可变对象上的操作更加高效。
    • 列表由于可变性,执行修改操作可能需要重新分配内存和复制元素,因此在某些情况下可能比元组更慢。
  • 用途:

    • 元组适用于表示一组不可变的数据,如坐标点、日期时间等。当你希望数据不被修改时,可以使用元组。
    • 列表适用于表示一组可变的数据,如列表中的元素可以随时增加、删除、修改。当你需要一个动态变化的数据集合时,可以使用列表。

 下面是一些示例,说明元组和列表之间的区别

# 元组示例
my_tuple = (1, 2, 3)
print(my_tuple[0])  # 访问元组中的元素,输出: 1

# 列表示例
my_list = [4, 5, 6]
my_list[0] = 10  # 修改列表中的元素
print(my_list)  # 输出: [10, 5, 6]

# 尝试修改元组中的元素,会引发异常
# my_tuple[0] = 10  # TypeError: 'tuple' object does not support item assignment

# 添加元素到列表
my_list.append(7)
print(my_list)  # 输出: [10, 5, 6, 7]

# 删除列表中的元素
del my_list[1]
print(my_list)  # 输出: [10, 6, 7]

注意:

猜你喜欢

转载自blog.csdn.net/qq_35831906/article/details/131850592