0
点赞
收藏
分享

微信扫一扫

Python元组的常规操作



Python元组的常规操作

  • ​​一、前言​​
  • ​​二、元组的创建和删除​​
  • ​​三、访问元组​​
  • ​​四、修改元组元素​​
  • ​​五、元组推导式​​

一、前言

  元组(tuple)是Python中另一个重要的序列结构,与列表类似,也是由一系列按特定顺序排列的元素组成,但是它是不可变序列。

  在形式上,列表的所有的元素都放在一个中括号“()”中,两个相邻元素间使用逗号“,”分隔。

二、元组的创建和删除

  在Python中提供了多种创建列表的方法,下面分别介绍:

  【1】使用赋值运算符直接创建列表

tuplename = (lement 1,element 2,element 3,...,element n)

参数说明:

  • tuplename:表示元组的名称。
  • element 1,element 2,element 3,…,element n:表示元组中的元素,个数没有限制。

  【2】创建空元组

  在Python中,可以创建空元组,例如创建一个名称为num的空元组,可以使用下列代码:

num = ()

  【3】创建数值元组

  在Python中,可以使用list()函数直接将range()函数循环出来的结果转换为元组。

  list()函数的基本语法如下:

tuple(data)

  其中,data表示可以转换为元组的数据,其类型可以是range对象、字符串、元组或者其他可迭代类型的数据。

  例如,创建一个10~20之间(不包含20)所有偶数的元组,可以使用下面代码:

num = tuple(range(10, 20, 2))
print(num)

  运行结果如下:

Python元组的常规操作_元组


说明: 使用list()函数时,不仅能通过range对象创建元组,还可以通过其他对象创建元组。


  【4】删除元组

  对于已创建的元组,不再使用时,可以使用del语句将其删除。语法格式如下:

del tuplename

  其中,tuplename为要删除元组名称。


说明: del语句在实际开发时,并不常用。因为Python自带垃圾回收机制会自动销毁不用元组。所以我们即使不手动删除,Python也会自动将其回收。


三、访问元组

  要访问元组中的值,请使用方括号进行指定索引切片或索引,以获取该索引处的值。

tup1 = ('physics', 'chemistry', 1997, 2000)
tup2 = (1, 2, 3, 4, 5, 6, 7 )

print ("tup1[0]: ", tup1[0])
print ("tup2[1:5]: ", tup2[1:5])

  执行结果如下:

Python元组的常规操作_python_02

四、修改元组元素

  元组是不可变的,这意味着我们无法更新或更改元组元素的值。 但是可以对元组重新赋值

tup = (12, 34.56)
tup = ('abc', 'xyz')
print(tup)

  运行结果如下:

Python元组的常规操作_后端_03

  另外我们还可以对元组进行组合来创建新的元组,如下例所示:

tup1 = (12, 34.56)
tup2 = ('abc', 'xyz')
tup3 = tup1 + tup2
print (tup3)

  运行结果如下:

Python元组的常规操作_生成器_04

五、元组推导式

  使用列表推导式可以快速生成一个元组,它的表现形式与列表相似。只是将推导式中的中括号“[]”,修改为小括号“()”。例如:生成10个随机数的元组,代码如下:

import random  # 导入random标准库

randomnumber = (random.randint(10, 100) for i in range(10))

print("生成的元组为", randomnumber)

  运行结果如下:

Python元组的常规操作_生成器_05

  执行结果,可以看是元组推导式并不能生成列表或元组,是一个生成器,需要使用tuple()函数转换一下,代码如下:

import random  # 导入random标准库

randomnumber = (random.randint(10, 100) for i in range(10))

randomnumber = tuple(randomnumber)

print("生成的元组为", randomnumber)

  运行结果如下:

Python元组的常规操作_元组_06

例如:通过生成器推导式生成一个包含3个元素的生成器对象number,然后调用3次__next__()方法输出每个元素,然后再将生成器转换为元组输出,代码如下:

number = (i for i in range(3))
print(number.__next__()) # 输出第一个元素
print(number.__next__()) # 输出第二个元素
print(number.__next__()) # 输出第三个元素
number = tuple(number) # 转换为元组
print(number)

  运行结果如下:

Python元组的常规操作_元组_07

  通过上面示例可以看出,如果想使用该生成器对象,必须重新创建一个生成器对象,因为遍历后原生成器对象已经不存在了。


举报

相关推荐

0 条评论