列表是python内置的可变序列,是包含若干元素的有序连续内存区间,其元素数据类型可以各不相同。当列表增加或删除元素时,列表对象将自动进行内存的扩展或收缩,从而保证元素间没有间隙。python列表内存的自动管理可以大幅减少程序员负担,但是也可能造成列表内大量元素的移动,效率低。所以,除非必要,否则应该尽量从列表尾部进行元素的增删操作。
列表初始化:
#创建列表
li = [1, 2, 3, 'abc', 4.5, [2, 3, 4], {1:'one'}]
#创建空列表
li=[]
获取列表长度:
#获取列表长度
li = [1, 2, 3]
print (len(li))
3
索引:
li = [1, 2, 3, 4, 5]
print(li[0]) #列表第一个元素
print(li[3]) #列表第四个元素
print(li[-1]) #列表倒数第一个元素
1
4
5
添加元素:
#list.append(x) 将元素x添加到列表list尾部
li=[1,2,3]
li.append([4,5,6])
print (li)
[1, 2, 3, [4, 5, 6]]
#list.extend(L) 将列表L中所有元素添加至列表list尾部
li = [1, 2, 3]
li.extend([4, 5, 6])
print(li)
[1, 2, 3, 4, 5, 6]
#list.insert(index,x) 在指定位置index处添加元素x
li = [1, 2, 3]
li.insert(2,'a')
print(li)
[1, 2, 'a', 3]
删除元素:
li = [1, 2, 3, 4, 5, 4, 4]
li.pop() #删除最后一个元素(默认)
print(li)
li.pop(2) #删除索引为2的元素
print(li)
del(li[0]) #删除第一个元素
print(li)
li.remove(4) #删除列表中首次出现的指定元素
print(li)
[1, 2, 3, 4, 5, 4]
[1, 2, 4, 5, 4]
[2, 4, 5, 4]
[2, 5, 4]
元素是否存在:
li = [1, 2, 3, 4, 5]
print(1 in li)
print(6 in li)
True
False
列表是否为空:
li = []
if not li:
print('Empty')
else:
print('Not Empty')
if len(li)==0:
print('Empty')
else:
print('Not Empty')
Empty
Empty
列表遍历:
li = [1, 2, 3]
for i in li:
print(i)
for i in range(len(li)):
print(li[i])
1
2
3
1
2
3
列表翻转:
li = [1, 2, 3, 4, 5]
li.reverse() #对列表进行翻转
print(li)
[5, 4, 3, 2, 1]
列表排序:
li=['a','b',1,2,'A','B','ABC']
li.sort()
print(li)
[1, 2, 'A', 'ABC', 'B', 'a', 'b']
切片:
切片有三个参数[start:end:step]
li = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print(li[3:6]) #选择3<= index <6 的数据
print(li[:4]) #省略第一个参数,默认为0
print(li[5:]) #省略第二个参数,默认为len(li)
print(li[:]) #省略全部参数,选择全部
print ('')
print(li[::2]) #步长为2
print(li[3::2])
print(li[::-1]) #反向
print(li[::-2])
print(li[-6:-1:1])
print(li[-1::-1])
[4, 5, 6]
[1, 2, 3, 4]
[6, 7, 8, 9, 10]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[1, 3, 5, 7, 9]
[4, 6, 8, 10]
[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
[10, 8, 6, 4, 2]
[5, 6, 7, 8, 9]
[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
字符串操作:
(在python中,不允许对字符串直接进行修改,可利用列表对字符串进行操作)
s = 'abcdefg'
li = list(s)
li[4] = 'E'
li[5] = 'F'
print(li)
s = ''.join(li)
print(s)
['a', 'b', 'c', 'd', 'E', 'F', 'g']
abcdEFg