列表反转
>>> blist=[1,2,3,4,5,6,7,8,9,10]
>>> blist[::-1] 使用:: 符号 从右边第一个元素开始逆序
[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
>>> blist[::-2] 从右边第二个元素开始 间隔一个逆序
[10, 8, 6, 4, 2]
同理 blist[::3] 会得到[10, 7, 4, 1] 如果::后面跟的是正数
>>> blist[::1]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
blist[::2]
[1, 3, 5, 7, 9]
还有一种方式 使用reversed
>>> list(reversed(blist))
[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
还有其他对list的操作:len() 、+、*、in、max()min() cmp()这跟对字符串的操作类似
比较重要的是列表的函数append()和extend()
append()函数:
list.append(x) 等价于 a[len(a):] = [x] 其中len(a) 是列表a 的长度
>>> alist
['a', 'b', 'c']
>>> alist[len(alist):]=['d']
>>> alist
['a', 'b', 'c', 'd']
>>> alist.append('e')
>>> alist
['a', 'b', 'c', 'd', 'e']
extend 将一个列表追加到另外一个列表之后
>>> clist=['I','me','mine']
>>> clist.extend(blist) # 把 blist 追加到 clist 之后
>>> clist
['I', 'me', 'mine', 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
注意被追加的内容一定要是list类型
>>> la=[1,2,3]
>>> b="abc"
>>> la.extend(b)
>>> la
[1, 2, 3, 'a', 'b', 'c']
>>> c=5>>> la.extend(c) # c 是一个数值类型
Traceback (most recent call last): File "", line 1, inla.extend(c)
TypeError: 'int' object is not iterable
list.extend(L) 等价于list[len(list):] = L L是带并入的list
extend 是将另外一个元素增加到自己的列表中,但是这个元素必须是iterable 可迭代的
某些类型的对象是可迭代的 ,list 类型是可迭代的 字符串类型是不可迭代的
比如 增加的元素是字符串类型 “python”
la.extend("python") 的时候会将"python" 字符串转化为 ['p','y','t','h','o','n']
append 和extend都是原地修改列表,所以没有返回值,没有返回值就不能赋值给某个变量
>>> one=["good","good","study"]
>>> one.extend(['day','day','up'])
>>> one
['good', 'good', 'study', 'day', 'day', 'up']
>>> two = one
>>> two
['good', 'good', 'study', 'day', 'day', 'up']
>>> three = one.extend(['day','day','up']) # 不能赋值 所以three变量什么值都没有
>>> lst=[1,2,3]
>>> lst.append(["java",'pyhton'])
>>> lst
[1, 2, 3, ['java', 'pyhton']]
>>> lst=[1,2,3]
>>> lst.extend(['java', 'pyhton'])
>>> lst
[1, 2, 3, 'java', 'pyhton']