元素是否存在生成式?列表当然有,但原组也有,只是其生成式结果是一个控制器对象,需要转化为原组或列表才能看到内容。
现在来看一个示例。
·视力五杠幺四,元组生成式不同,也有但不同。生成式需要写在小括号中,并包含for i、range,以产生一至四的序列,但不包含四。
·接着,元素是i,此时右键运行t,发现没有看到任何元素,但实际上是一个生成器对象。但如何查看内容呢?可以将其转换为原组查看。
·将t source放入t中,此时右键运行t,可以看到其中的元素。是否方便?可以。end,item,t,输出item,结果方便了。
·最后说,结果是一个生成器对象,除了手动循环外,还可以使用nice方法。但使用nice方法前需要注意,否则无法获取元素,因为它已被便利过一次,此时对象中已不存在元素。但现在已注意到这一点,可以使用nice方法了。
现在运行它,提示在第三行和第四行出现问题。需要将第三行和第四行也注射,因为现在已经是原组类型,需要注意。第二行是生成器对象。
运行时,发现第一个元素被取出来了。如果要取第二个元素,可以继续使用nice方法。再取第三个元素,再继续。现在我取了三次,如果此时将其转换为原组,还能看到元素吗?输出十三行,发现此时为空,为什么?因为使用nice方法已取出所有元素。
·此时已没有元素,再将其转换为元组类型时就会消失。现在介绍了原组的操作,再来看一下原组和列表的区别。
·首先,原组是一种胎形,其中的可变序列而列表是一种拍新中的可变序列,不可变序列无法添加、删除或修改元素。
·但列表是可变序列,具有判断生成层和一系列方法,如remove、pop、增生、修改等,而原组和列表都支持元,因此都可以使用切片操作访问元素。元素的访问和处理速度通常较快,而列表的访问和处理速度则相对较慢。这主要是因为列表是可变的序列,而原组可以作为字典的基础,但是列表不行。关于字典的概念,在下一个小节会为大家详细介绍。