通过下面的例子来了解用法
#后面的内容是输出&解释
a = [1 , 2 , 3 , 4 ]
b = [1]
c = [1]
d = b
e = [1,"hello world!",c, False]
print(id(b),id(c)) #(194100040L, 194100552L)
print(id(b),id(d)) #(194100040L, 194100040L)
print (b == c) # True
f = list("abcd") # 利用list函数从任何可遍历结构初始化
print (f) #['a','b','c','d']
g = [0]*3 + [1]*4 + [2]*2 #[0 , 0 , 0 , 1 , 1 , 1 , 1 , 2 , 2]
“*”操作符对于列表而言是复制,最后一个语句用这种方法生成了分段的列表。
列表的基本操作有访问、增加、删除、拼接、子序列和倒序等:
a = [ 1 , 2 , 3 , 4 ]
a.pop() #把最后一个值4从列表中移除并作为pop的返回值
4 in a #判断4 是否在a中,False
a.append(5) #末尾插入值,[ 1 , 2 , 3 , 5]
a.index(2) #找到第一个2所在的位置,也就是1
a [2] #取下标,即位置在2的值,也就是第3个值3
a += [ 4 , 3 , 2 ] #拼接, [ 1 , 2 , 3 , 5 ,4 , 3 , 2]
a.insert(1, 0) #在下标为1处插入元素0,[ 1 ,0, 2 , 3 , 5 ,4 , 3 , 2]
a.remove(2) #移除第一个2, [ 1 ,0 , 3 , 5 ,4 , 3 , 2]
a.reverse() #倒序,返回值为0,a变为 [ 2 , 3 , 4 , 5 , 3 , 0 , 1 ]
a[3] = 9 #指定下标处赋值,[2 , 3 , 4 ,9 , 3 , 0 , 1]
b = a[2:5] #取下标2开始到5之前的子序列,[4,9,3],此类方法叫做slicing
c = a[2:-2] #下标也可以很方便的倒着数,-1 对应最后一个元素,[4,9,3]
d = a[ 2: ] #取下标2开始到结尾的子序列,[4 ,9 , 3 , 0 , 1]
e = a[ : 5 ] #取开始到下标5之前的子序列, [2 , 3 , 4 ,9 , 3]
f = a [ : ] #取从开头到最后的整个子序列,相当于值拷贝, [2 , 3 , 4 ,9 , 3 , 0 , 1]
a[2:-2] = [1,2,3] # 赋值也可以按照片段来,[2,3,1,2,3,0,1]
g = a [::-1] #也是倒序,通过slicing实现并赋值,效率略低于reverse()
a.sort()
print (a) #列表内排序,返回值为None, a 变为[0,1,1,2,2,3,3]
因为列表是有顺序的,所以和顺序相关的操作是列表中最常见的,首先来打乱一个列表的顺序,然后再对这个列表排序。
import random
a = range(6) #生成一个列表,从0开始+1递增到5
print (a) #[0,1,2,3,4,5]
random.shuffle(a) #shuffle函数可以对可遍历且可变结构打乱顺序
print (a) #[4,3,0,2,5,1]
b = sorted(a)
print (b) # [0,1,2,3,4,5]
c = sorted(a, reverse = True)
print (c) # [5,4,3,2,1,0]