python 元祖 元祖推导式以及(元祖和列表的区别)

1:元祖推导式

和列表推导式的生成方式很像,只不过是把中括号换成了小括号,
生成一个生成器对象,转换成元祖需要用到tuple()函数

import random
randomnumber = (random.randint(10,100) for i in range(1,10))
print '生成的元祖为:%s'%randomnumber # 生成的元祖为:<generator object <genexpr> at 0x00000000037BBBD0>
tup = tuple(randomnumber)
print ('转化后的结果为:',tup)
# 转化后的结果为:,(67, 98, 14, 90, 13, 82, 74, 55, 50)

元祖推导式的调用。将生成器调用三次之后再转换成元祖格式输出,调用时用next()函数,在python3中使用__next__()函数。

number = (i for i in range(0,3))
print number.next() # 0
print number.next() # 1
print number.next() # 2
print tuple(number) # ()

在创建一个包含四个元素的生成器

number1 = (i for i in range(0,4))
for i in number1:
    print i
print tuple(number1)
# 1  2  3  ()

输出结果发现是,无论是通过哪种方式遍历后,都无法在使用生成器,如果想在使用只有重新创建一个。原因:因为遍历之后原来的生成器已经不存在了。

2:元祖和列表的区别

元祖和列表都属于序列,而且它们又都可以按照特定顺序存放一组元素,类型又不受限制,只要是python支持的类型都可以。
通俗的理解,列表就好像是我们用铅笔,在纸上写下了自己喜欢的歌词,写错了还可以擦掉,但是元祖类似于我们用钢笔写的歌词,写上了就不可以擦掉了除非换一张纸

  • 列表属于可变序列,它的元素可以随时修改或者删除;元祖属于不可变类型,其中的元素不能修改,除非整体替换。
  • 列表可以使用append()、extend()、insert()、remove()和pop()等方法实现列表的增删查改,但是元祖没有这几个方法,因为不能向元祖里添加,删除和删除元素。
  • 列表可以使用切片访问修改列表中的元素,元祖也支持切片,但是元祖的切片只能访问元祖的元素,不支持修改。
  • 列表不能作为字典的键,但是元祖可以
  • 元祖比列表访问和处理速度快,所以如果只是需要对序列里的元素进行访问,而不进行任何修改的话,建议使用元祖。
    我是阿旺,下一篇要更新字符串了,每天都会有新的收获
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值