Python入门——第三章 列表和元组:3.3元组

Python入门——第三章 列表和元组:3.3元组,第1张

Python入门

文章目录
  • Python入门
      • 3.3元组
        • 3.3.1元组的创建和删除
          • 使用赋值运算符直接创建元组
          • 创建空元组
          • 创建数值元组
          • 删除元组
        • 3.3.2访问元组元素
        • 3.3.3修改元组元素
        • 3.3.4元组推导式
      • 3.4元组与列表的区别

3.3元组

元组与列表类似,也是由一系列按特定顺序排列的元素组成的,但它们的主要区别在于列表是可变序列,元组是不可变序列,即元组中的元素不可以单独修改,而列表中的元素可以任意修改。

3.3.1元组的创建和删除
  • 使用赋值运算符直接创建元组
    tuplename = (element1,element2,element3...)
    

    注:创建列表使用方括号[],创建元组使用圆括号()。

    但实际上,圆括号并不是必须的,只要将一组值用逗号隔开,python就认为它是元组。

    tuplename = element1,element2,element3...
    

    如果要创建的元组只包括一个元素则需要在定义元组时,在元素后面加一个逗号

    verse= ("abc",)
    #输出verse ('abc',)   元组
    verse= ("abc")
    #输出verse abc   字符串
    
    #可使用type()函数测试变量类型
    
  • 创建空元组
    emptytuple= ()
    

    空元组可以应用于为函数传递一个空值或者返回空值。

  • 创建数值元组

    可以使用tuple()函数直接将range()函数循环出来的结果转换为数值元组,还可使用range()外的其他对象创建元组

    tuple(data)
    
    tuple(range(10,20,2)) #(10, 12, 14, 16, 18)
    
  • 删除元组
    del tuplename
    
3.3.2访问元组元素
tuplename[3]
tuplename[:3]    #切片方式
for element in  tuplename:
    print(element)           #for循环遍历
for index,item in enumerate(tuolename):    #for循环和enumerate()函数结合遍历
    ...
3.3.3修改元组元素

元组是不可变的序列,不能对它的单个元素进行修改。但是我们可以对整个元组进行重新赋值。

可对元组进行连接组合,并且连接的内容必须是元组。

3.3.4元组推导式

使用元组推导式可快速生成一个元组,它的表现形式和列表推导式类似,只是将[]改为()。

import random  #导入random标准库
randomnumber = (random.randint(10,100) for i in range(10))
print("生成的元组为:",randomnumber)
#生成的元组为: at 0x000001AD183AEE40>

由上面的结果可看出,使用元组推导式生成的并不是一个元组或者列表,而是一个生成器对象,这一点和列表推导式是不同的。要使用该生成器对象可以将其转换诶元组或者列表,转换为元组使用tuple()函数,转换为列表使用list()函数。

import random   #导入random标准库
randomnumber= (random.randint(10,100) for i in range(10))
randomnumber = tuple(randomnumber)  #转换为元组
print("转换后:",ranmdomnumber)   

#转换后:(21, 52, 92, 23, 78, 42, 50, 80, 83, 76)

要使用通过元组推导式生成的生成器对象,还可以直接通过for循环遍历或者直接使用__ next() __方法进行遍历。

number= (i for i in range(3))
print(number.__next__())  #输出第1个元素
print(number.__next__())  #输出第2个元素
print(number.__next__())  #输出第3个元素
number =tuple(number)     #转换为元组
print("转换为:",number)
'''
0
1
2
转换后:()
'''
number= (i for i in range(4))  #生成生成器对象
for i in number:               #遍历生成器对象
    print(i,end=' ')           #输出每个元素的值
print(tuple(number))           #转换为元组输出
# 0 1 2 3 ()

从上面两个实例可看出,无论使用哪种方法遍历后,如果还想再使用该生成器对象,都必须重新创建一个生成器对象,因为遍历后原生成器对象已经不存在了。

3.4元组与列表的区别

简单理解:

​ 列表类似于我们用铅笔写下的内容,写错了还可以擦掉。

​ 元组类似于我们用钢笔写下的内容,写错了就擦不掉了,除非换一张纸重写。

  • 列表属于可变序列,它的元素可以随时被修改或者删除;而元组属于不可变序列,其中的元素不可以被修改,只能被整体替换。
  • 列表可以使用append(),extend(),remove(),insert()和pop()等方法实现添加和修改元素;元组则没有这几个方法,因为不能在元组中添加和修改元素,同样,也不能删除元素。
  • 可以使用切片访问和修改列表中的元素。元组也支持切片,但是它只能通过切片访问元组中的元素,不支持修改。
  • 元组比列表的访问和处理速度快。所以如果只需要对其中的元素进行访问,而不进行任何修改,建议使用元组而不使用列表。
  • 列表不能作为字典的键,元组则可以。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/718269.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-04-25
下一篇2022-04-25

发表评论

登录后才能评论

评论列表(0条)

    保存