python基础——元组 tuple

水深无声 2024-04-18 23:46 188阅读 0赞

文章目录

  • 一、什么是元组
  • 二、创建元组
    • 2.1、使用 () 来创建元组
    • 2.2、省略括号,创建元组
  • 三、元组的解包(解构)
    • 3.1、利用元组的解包,交互a 和 b的值
    • 3.2、在变量前边添加一个*,变量将会获取元组中所有剩余的元素
      • 1)第一个变量 加 `*`
      • 2)中间变量 加 `*`
      • 3)最后一个变量 加 `*`
      • 4)注意事项:
    • 3.3、列表的解包(与元组无关):
    • 3.4、字符串的解包:

一、什么是元组

元组是一个不可变的序列
它的操作的方式基本上和列表是一致的
所以你在操作元组时,就把元组当成是一个不可变的列表就ok了
一般当我们希望数据不改变时,就使用元组,其余情况都使用列表

二、创建元组

2.1、使用 () 来创建元组

创建空元组

  1. my_tuple = ()
  2. print(my_tuple,type(my_tuple))

运行结果:

  1. <class 'tuple'>

创建了一个5个元素的元组

  1. my_tuple = (1,2,3,4,5)
  2. print(my_tuple,type(my_tuple))

运行结果:

  1. (1, 2, 3, 4, 5) <class 'tuple'>

元组是不可变对象,不能尝试为元组中的元素重新赋值

  1. my_tuple[3] = 10
  2. print(my_tuple[3])

运行报错了:

  1. TypeError: 'tuple' object does not support item assignment

2.2、省略括号,创建元组

注意事项:

  • 当元组不是空元组时,括号可以省略;
  • 省略括号后,元组只有一个值时,它边至少要有一个 ,

    my_tuple = 10,20,30,40
    print(my_tuple , type(my_tuple))

运行结果:

  1. (10, 20, 30, 40) <class 'tuple'>
  2. ```​
  3. 只有一个值时,必须加上逗号(,)
  4. ```python
  5. my_tuple1 = 40
  6. my_tuple2 = 40,
  7. print(my_tuple , type(my_tuple))
  8. print(my_tuple2 , type(my_tuple2))

运行结果:

  1. 40 <class 'int'>
  2. (40,) <class 'tuple'>

说明:不加逗号是int, 加上逗号是元组。

三、元组的解包(解构)

解包指就是将元组当中每一个元素都赋值给一个变量。

  1. my_tuple = 10 , 20 , 30 , 40
  2. a,b,c,d = my_tuple
  3. print("a =",a)
  4. print("b =",b)
  5. print("c =",c)
  6. print("d =",d)

运行结果:

  1. a = 10
  2. b = 20
  3. c = 30
  4. d = 40

3.1、利用元组的解包,交互a 和 b的值

  1. a = 100
  2. b = 300
  3. print('交换值前:','a=',a ,' b=', b)
  4. a , b = b , a
  5. print('交换值后:','a=',a ,' b=', b)

运行结果:

  1. 交换值前: a= 100 b= 300
  2. 交换值后: a= 300 b= 100

在对一个元组进行解包时,变量的数量必须和元组中的元素的数量一致

3.2、在变量前边添加一个*,变量将会获取元组中所有剩余的元素

1)第一个变量 加 *

  1. my_tuple = 10 , 20 , 30 , 40
  2. *a , b , c = my_tuple
  3. print('a =',a)
  4. print('b =',b)
  5. print('c =',c)

运行结果:

  1. a = [10, 20]
  2. b = 30
  3. c = 40

注意: 加 * 的变量 a 的类型是 列表。(即使是一个值,也是列表)

2)中间变量 加 *

  1. my_tuple = 10 , 20 , 30 , 40
  2. a , *b , c = my_tuple
  3. print('a =',a)
  4. print('b =',b)
  5. print('c =',c)

运行结果:

  1. a = 10
  2. b = [20, 30]
  3. c = 40

注意: 加 * 的变量 a 的类型是 列表。(即使是一个值,也是列表)

3)最后一个变量 加 *

  1. my_tuple = 10 , 20 , 30 , 40
  2. a , b , *c = my_tuple
  3. print('a =',a)
  4. print('b =',b)
  5. print('c =',c)

运行结果:

  1. a = 10
  2. b = 20
  3. c = [30, 40]

注意: 加 * 的变量 a 的类型是 列表。(即使是一个值,也是列表)

4)注意事项:

不能同时出现两个或以上的 * 变量,会抛异常:

  1. *a , *b , c = my_tuple

异常:

  1. SyntaxError: two starred expressions in assignment

3.3、列表的解包(与元组无关):

  1. a , b , *c = [1,2,3,4,5,6,7]
  2. print('a =',a)
  3. print('b =',b)
  4. print('c =',c)

3.4、字符串的解包:

  1. a , b , *c = 'hello world'
  2. print('a =',a)
  3. print('b =',b)
  4. print('c =',c)

发表评论

表情:
评论列表 (有 0 条评论,188人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Python (Tuple)操作

    Python的元组与列表类似,不同之处在于元组的元素不能修改,元组使用小括号,列表使用方括号,元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可 一、创建元组 代码