走进Python世界(5)----list和tuple

来源:互联网 发布:js new一个函数的过程 编辑:程序博客网 时间:2024/06/05 08:20

list

Python内置的一种数据类型是列表:list。list是一种有序的集合,可以随时添加和删除其中的元素。类似Java里面的集合,数组。

初始化:

>>> list = ['Walee01', 'Walee02', 'Walee03']>>>list>>>['Walee01', 'Walee02', 'Walee03']

用len()函数可以获得list元素的个数

>>> len(list)3>>> 

用索引来访问list中每一个位置的元素,索引是从0开始的

>>> list[0]'Walee01'>>> list[1]'Walee02'>>> list[2]'Walee03'>>> list[3]Traceback (most recent call last):  File "<pyshell#5>", line 1, in <module>    list[3]IndexError: list index out of range>>> 

当索引超出了范围时,Python会报一个IndexError错误,所以,要确保索引不要越界
如果要取最后一个元素,除了计算索引位置外,还可以用-1做索引,直接获取最后一个元素

>>> list[-1]'Walee03'>>> list[-2]'Walee02'>>> list[-3]'Walee01'

list是一个可变的有序表,所以,可以往list中追加元素到末尾,append是list的追加元素的方法

>>> list.append('Walee04')>>> list['Walee01', 'Walee02', 'Walee03', 'Walee04']

要删除list末尾的元素,用pop()方法,用pop(i)方法,其中i是索引位置

>>> list.pop()'Walee04'>>> list.pop(-2)'Walee02'

list里面的元素的数据类型也可以不同

>>> list.append(['a',1,False])>>> list['Walee01', 'Walee02', 'Walee03', ['a', 1, False]]>>> list[-1][-1]False

tuple

另一种有序列表叫元组:tuple。tuple和list非常类似,但是tuple一旦初始化就不能修改

>>> tuple('Walee01', 'Walee02', 'Walee03')>>> tuple[0]'Walee01'>>> tuple[-1]'Walee03'

tuple定义了以后,就不能变了,它也没有append(),insert()这样的方法。其他获取元素的方法和list是一样的,你可以正常地使用tuple[0],tuple[-1],但不能赋值成另外的元素。

>>> tuple[0]='Walee04'Traceback (most recent call last):  File "<pyshell#3>", line 1, in <module>    tuple[0]='Walee04'TypeError: 'tuple' object does not support item assignment

不可变的tuple有什么意义?因为tuple不可变,所以代码更安全。如果可能,能用tuple代替list就尽量用tuple。

当你定义一个tuple时,在定义的时候,tuple的元素就必须被确定下来

>>> myTuple=(1,2,3)>>> myTuple(1, 2, 3)>>> len(myTuple)3>>> kong=()>>> kong()

看下面的代码

>>> some=(4)>>> some4

这个时候出现了一个问题:小括号是数学上的小括号呢?还是定义Tuple的小括号呢?

这个时候产生量歧义,因此,Python规定,这种情况下,按小括号进行计算,计算结果自然是4。所以,只有1个元素的tuple定义时必须加一个逗号,,来消除歧义。

>>> some=(4,)>>> some[0]4

“可变的”tuple

>>> t = ('a', 'b', ['A', 'B'])>>> t('a', 'b', ['A', 'B'])>>> t[-1][0]='W'>>> t('a', 'b', ['W', 'B'])>>> 

表面上看,tuple的元素确实变了,但其实变的不是tuple的元素,而是list的元素,我们可以看出来t[-1]=[‘A’, ‘B’]这是个list。tuple一开始指向的list并没有改成别的list,所以,tuple所谓的“不变”是说,tuple的每个元素,指向永远不变。

0 0
原创粉丝点击