列表list
L = ['Adam', 'Lisa', 'Bart']
L[-3] L[-2] L[-1] L[0] L[1] L[2]
list的添加
List 的append() 方法
append()总是把新的元素添加到 list 的尾部。
L = ['Adam', 'Lisa', 'Bart']
L.append('Paul')
print L
['Adam', 'Lisa', 'Bart', 'Paul']
ist的 insert()方法
L.insert(0, ‘Paul’) 的意思是,’Paul’将被添加到索引为 0 的位置上(也就是第一个)
L = ['Adam', 'Lisa', 'Bart']
L.insert(0, 'Paul')
print L
['Paul', 'Adam', 'Lisa', 'Bart']
list删除
list的pop()
pop()方法总是删掉list的最后一个元素,并且它还返回这个元素
L = ['Adam', 'Lisa', 'Bart', 'Paul']
L.pop()
'Paul'
print L
['Adam', 'Lisa', 'Bart']
用 pop(2)把Paul删掉:
L.pop(2)
'Paul'
print L
['Adam', 'Lisa', 'Bart']
取前N个元素
L[0:n]
L[1:3]
L[0:3]表示,从索引0开始取,直到索引3为止,但不包括索引3。即索引0,1,2,正好是3个元素
如果第一个索引是0,还可以省略:
L[:3]
切片操作还可以指定第三个参数:
L[::2]
['Adam', 'Bart']
第三个参数表示每N个取一个,上面的 L[::2] 会每两个元素取出一个来,也就是隔一个取一个。
把list换成tuple,切片操作完全相同,只是切片的结果也变成了tuple。
取后n个元素
L = ['Adam', 'Lisa', 'Bart', 'Paul']
L[-2:]
['Bart', 'Paul']
L[:-2]
['Adam', 'Lisa']
L[-3:-1]
['Lisa', 'Bart']
L[-4:-1:2]
['Adam', 'Bart']
对字符串切片
字符串 ‘xxx’和 Unicode字符串 u’xxx’也可以看成是一种list,每个元素就是一个字符。因此,字符串也可以用切片操作,只是操作结果仍是字符串:
>>> 'ABCDEFG'[:3]
'ABC'
>>> 'ABCDEFG'[-3:]
'EFG'
>>> 'ABCDEFG'[::2]
'ACEG'
列表tuple
tuple是另一种有序的列表,中文翻译为“ 元组 ”。tuple 和 list 非常类似,但是,tuple一旦创建完毕,就不能修改了。
t = ('Adam', 'Lisa', 'Bart')
创建tuple和创建list唯一不同之处是用( )替代了[ ]
生成列表list
要生成list [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],我们可以用range(1, 11):
range(1, 11)
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
但如果要生成[1x1, 2x2, 3x3, …, 10x10]怎么做?方法一是循环:
L = []
for x in range(1, 11):
L.append(x * x)
L
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
但是循环太繁琐,而列表生成式则可以用一行语句代替循环生成上面的list:
[x * x for x in range(1, 11)]
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
这种写法就是Python特有的列表生成式。利用列表生成式,可以以非常简洁的代码生成 list。