您的位置:首页 > 编程语言 > Python开发

Python自学笔记 - 5.list和tuple

2017-09-02 11:34 393 查看
1.list是一种有序的集合

>>> classmates = ['Michael', 'Bob', 'Tracy']
>>> classmates
['Michael', 'Bob', 'Tracy']


变量
classmates
就是一个
list
。用
len()
函数可以获得
list
元素的个数:

>>> len(classmates)
3


list的索引从0开始

>>> classmates[0]
'Michael'


最后一个元素可以用-1索引,同理-2,-3等

>>> classmates[-1]
'Tracy'


追加元素到末尾用
.append()


>>> classmates.append('Adam')
>>> classmates
['Michael', 'Bob', 'Tracy', 'Adam']


指定位置插入元素
.insert(1, 'Jack')


>>> classmates.insert(1, 'Jack')
>>> classmates
['Michael', 'Jack', 'Bob', 'Tracy', 'Adam']


删除末位元素
pop()


>>> classmates.pop()
'Adam'
>>> classmates
['Michael', 'Jack', 'Bob', 'Tracy']


删除指定位置元素用
pop(i)
方法,其中
i
是索引位置

>>> classmates.pop(1)
'Jack'
>>> classmates
['Michael', 'Bob', 'Tracy']


替换指定位置元素,可以直接赋值

>>> classmates[1] = 'Sarah'
>>> classmates
['Michael', 'Sarah', 'Tracy']


list
元素也可以是另一个
list
,比如:

>>> s = ['python', 'java', ['asp', 'php'], 'scheme']
>>> len(s)
4


如果拆开写就更容易理解了:

>>> p = ['asp', 'php']
>>> s = ['python', 'java', p, 'scheme']


要拿到
'php'
可以写
p[1]
或者
s[2][1]
,因此
s
可以看成是一个二维数组,类似的还有三维、四维……数组,不过很少用到。

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

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


2.tuple也是一种有序元素集合,但初始化之后不能修改

>>> classmates = ('Michael', 'Bob', 'Tracy')


与list定义时的区别在于
()
[]


因为tuple不可变,所以代码更安全。如果可能,能用tuple代替list就尽量用tuple。

tuple的陷阱:

但是,要定义一个只有1个元素的tuple,如果你这么定义:

>>> t = (1)
>>> t
1


定义的不是tuple,是
1
这个数!这是因为括号
()
既可以表示tuple,又可以表示数学公式中的小括号,这就产生了歧义,因此,Python规定,这种情况下,按小括号进行计算,计算结果自然是1。

所以,只有1个元素的tuple定义时必须加一个逗号,,来消除歧义:

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


Python在显示只有1个元素的tuple时,也会加一个逗号,,以免你误解成数学计算意义上的括号。

多维数组实现可变tuple

>>> t = ('a', 'b', ['A', 'B'])
>>> t[2][0] = 'X'
>>> t[2][1] = 'Y'
>>> t
('a', 'b', ['X', 'Y'])


实质上tuple并没有变化,只是其中的list元素[‘A’,’B’]发生了变化。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python