list表示列表,是可变的有序列表,即有序的集合,可以随时添加和删除元素。
>>> classmates = ['Michael', 'Bob', 'Tracy']
>>> classmates
['Michael', 'Bob', 'Tracy']
用len()
函数可以获得list元素的个数
>>> len(classmates)
3
- list元素索引从0开始
- 索引可以引用负数表示倒数序号,例如classmates[-1]表示倒数最后一个元素,索引
-1
等价于len(classmates) - 1
- 索引越界会报
IndexError
错误,倒序索引也会越界
>>> classmates.append('Adam')
>>> classmates
['Michael', 'Bob', 'Tracy', 'Adam']
>>> classmates.insert(1, 'Jack')
>>> classmates
['Michael', 'Jack', 'Bob', 'Tracy', 'Adam']
>>> 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,即将一维list中的元素定义为list即可,同理可以实现多维list。例如访问二维list可用s[2][1]
的方式,表示一维list中的第三个元素list中的第二个元素。
>>> s = ['python', 'java', ['asp', 'php'], 'scheme']
>>> len(s)
4
空list即一个元素也没有,长度为0。
>>> L = []
>>> len(L)
0
tuple表示元组,即不可变的有序元素的集合。即没有修改元素的函数,例如append(),insert(),元素赋值等。
因为tuple元素不可变,所以代码更安全。当定义tuple时,元素就必须被确定下来。如果tuple中只含一个元素,则在该元素后加逗号。避免与小括号运算产生歧义。
#以下是单元素tuple的定义
>>> t = (1,)
>>> t
(1,)
#以下是小括号运算
>>> t = (1)
>>> t
1
tuple中的元素不可变表示元素的指向不可变,但该元素如果是list,则该list的内容可变。即list表示的是指向,该list的指向不可变,但是list中元素的指向可变,即list中的元素可变。例如:
>>> t = ('a', 'b', ['A', 'B'])
>>> t[2][0] = 'X'
>>> t[2][1] = 'Y'
>>> t
('a', 'b', ['X', 'Y'])
示意图:
list元素修改前:t = ('a', 'b', ['A', 'B'])
list元素修改后:t = ('a', 'b', ['X', 'Y'])
参考: