tuple&list 元组与列表区别

tuple&list 元组与列表区别

pyhon中tuple表示元组,list表示列表。这两种都是很重要的数据结构。它们的区别是list的长度是可变的,而元组的长度是不可变的。关于可变,需要通过实例来说明。

1. list 列表

下面几个变量都是属于列表,可以看出都是列表元素需要填入[ ],这点需要注意,元素可以使数字,字符串,也可以是列表。如list_2列表中还包括了一个子列表[2,3]。这都是允许的,列表使用十分方便灵活。

列表中元素位置与其它编程语言一样,都是从0开始,如list_1中,有3个元素,其位置为0,1,2。因此如果想要单独提取列表中的元素,只需要提取对应的位置就行。如想要提取list_3总的‘bar’,则list_3[ 1]## 先输入列表名称,然后在中括号中输入元素在列表中的位置。

list_1=[2,3,5]
list_2=[1,2,3,4,[2,3]]
list_3=['foo','bar',2]

列表是的长度可以增加,也可删减。再次我不介绍,我只举个列子,比如我想将list_1增加一个元素6,则可以list_1.append(6)

append就是列表的一个属性,查看list所有属性可以使用代码dir(list).

2. tuple 元组

元组的定义是:一种固定长度,不可变的python对象序列。创建元组最简单的办法是使用逗号分隔序列。

tup_1=(4,5,6),(7,8) ##两个小括号中间用,好分隔的,会自动生成元组结构

tup_2=( [1,2,3] ) ##这种形式生成的是列表,因为()中只要一个[ ]元素,这样tup_2=( [1,2,3] , 4) 这样才是元组。也就是说小阔中必须要有2个及以上的元素才会自动识别为元组。当然了我们可以直接定义tuple,这样就不用担心写的不是元组是列表了。

tup_3=tuple( ['fool', [1,2] ,true] )

重点理解:我们写元组结构时有两种情况,一种是自己直接定义为tuple,一种是我们输入数据是系统自动识别为元组。关于第一中自己定义的元组,

tup=(1,2,3,4)  #中小括号内没有其它结构的,会自动归为元组。如下两种表达形式,第一种tub运行后成为元组结构。第二种运行会报错TypeError: tuple expected at most 1 arguments, got 2。我试了几遍,总结下来的原因是:当自定义tuple时,小括号()内只允许存在一个元素,而刚才的case中,[[4,5,6],[7,8],[9,10]]属于一个元素,然后[1]又属于一个,所以有2个元素。当我们想定义多个列表元素在元组中时,可以用第一中形式定义。

tup = ([[4,5,6],[7,8],[9,10]],[1])
tup = tuple([[4,5,6],[7,8],[9,10]],[1])

2.1 元组对象不可修改

元组对象不可修改需要正确理解,它不是表示元组就是固定死的。假如元组中存有对象是可变的,如列表,那么可以在列表中内部进行修改:

如tup = ([[4,5,6],[7,8],[9,10]],[1])  tup[ 0 ]=[4,5,6] ,这个可以通过修改元组中列表,tup[ 0].append(7),这时候tup[0]=[4,5,6,7]

但是各个位置上的对象是不能通过赋值修改的,如:

tup[0] =[1,3] 运行后会报错'tuple' object does not support item assignment

 

总结

我理解为,元组是列表的一种进化格式,只是元组设定后,不能对固定位置对象进行赋值,但是假如元组中有可修改的元素,如列表。我们是可以对其进行元素内部修改的。

展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 深蓝海洋 设计师: CSDN官方博客
应支付0元
点击重新获取
扫码支付

支付成功即可阅读