Python开山篇-List和Tuple的使用

来源:互联网 发布:java自学手册 编辑:程序博客网 时间:2024/05/19 12:17

核心
1、list和tuple的介绍和使用

前面我们介绍了python的基本类型,有整形,浮点型、布尔型等
list
python内置的一种数据类型的列表,list是一种有序的集合,可以随时添加和删除其中的元素。比如
classname是一个变量,里面存了3个元素,其中的len是获取classname的长度

>>> classname=['xlucas','tom','jack']>>> classname['xlucas', 'tom', 'jack']>>> len(classname)3>>>

用索引来访问list中每一个位置的元素,记得索引是从0 开始的。当索引超出了范围时,python会报一个indexError错误,所以要确保索引不要越界,记得最后一个元素的索引是len(classname)-1.如果想直接获取最后一个元素可以用-1做索引

>>> classname[0]'xlucas'>>> classname[1]'tom'>>> classname[2]'jack'>>> classname[3]Traceback (most recent call last):  File "<stdin>", line 1, in <module>IndexError: list index out of range>>> classname[-1]'jack'

依次类推,可以获取倒数第2个、倒数第3个

>>> classname[-2]'tom'>>> classname[-3]'xlucas'>>> classname[-4]Traceback (most recent call last):  File "<stdin>", line 1, in <module>IndexError: list index out of range

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

>>> classname.append('xulu')>>> classname['xlucas', 'tom', 'jack', 'xulu']

也可以把元素插入到指定的位置,比如往索引位置是1的位置插入spark

>>> classname.insert(1,'spark')>>> classname['xlucas', 'spark', 'tom', 'jack', 'xulu']

可以删除list中最后一个元素用pop

>>> classname.pop()'xulu'>>> classname['xlucas', 'spark', 'tom', 'jack']

可以删除list中指定索引位置的元素pop(i)

>>> classname.pop(1)'spark'>>> classname['xlucas', 'tom', 'jack']

可以将list中索引位置的元素替换成其他元素,直接赋值模式就可以了

>>> classname[1]='xulu'>>> classname['xlucas', 'xulu', 'jack']

一个list里面可以是不同类型的元素

>>> l=['apple',1223,True]>>> l['apple', 1223, True]

如果一个list中间的元素是一个list,这个我们应该怎么访问呢?可以看出多层就可以了。例如下面这个例子s[2]返回的结果是一个list,这样我们当这个s[2]是一个list的变量就可以了

>>> s=['python','java',['scala','R'],'spark']>>> len(s)4>>> s[2]['scala', 'R']>>> s[2][1]'R'>>> s[2][0]'scala'>>>

如果一个list中一个元素也没有,就是一个空的list,它的长度是0

>>> l=[]>>> len(l)0

tuple
另一种有序列表叫 元组:tuple。tuple和list很相似,但是tuple一旦初始化就不能修改。
现在classname这个tuple不能变了,它也没有append(),insert()这样的方法,其他获取元素的方式和list一样。

>>> classname=('xlucas','tom','jack')>>> classname('xlucas', 'tom', 'jack')

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

>>> t=(1,2)>>> t(1, 2)

如果要定义一个空的tuple,可以写成()

>>> t=0>>> t0

但是,要定义一个只有1个元素的tuple,如果你这么定义,定义的不是tuple,是1这个数。这是因为括号()既可以表示tuple,又可以表示数学公式中的小括号,这就产生了歧义,因此python规定,这种情况下,按小括号进行计算,计算结果自然是1,所以只有1个元素的tuple定义时必须加一个逗号,,来消除歧义

>>> t=(1)>>> t1>>> t=(1,)>>> t(1,)

下面描述一个”可变“的tuple,下面这边是tuple里面 有个list,修改的是list元素的值,没有修改tuple元素list的值。所以本质上tuple是没有变化的

>>> t=('xlucas','php',['java','R'])>>> t('xlucas', 'php', ['java', 'R'])>>> t[2][0]='python'>>> t[2][1]='scala'>>> t('xlucas', 'php', ['python', 'scala'])
0 0