列表类似于C++中的vector,C语言中的数组,用于存储顺序结构
创建列表(list)
a=[‘1‘,‘2‘] 用[]括起来,表示一个list,中间的各个元素可以是任何类型,用逗号分隔。
列表结构
list函数 拆分字符串成列表
>>>
list(‘chongshi‘)
[‘c‘, ‘h‘, ‘o‘, ‘n‘, ‘g‘, ‘s‘, ‘h‘, ‘i‘]
修改列表:元素赋值
>>> x
=[1,2,3,4]
>>> x[2]=18
>>> x
[1, 2, 18, 4]
删除元素
>>> names = [‘zhangsan‘,‘lisi‘,‘wangwu‘,‘sunliu‘]
>>> del names[2]
>>> names
[‘zhangsan‘, ‘lisi‘, ‘sunliu‘]
分片赋值:
>>> name =
list(‘huzi‘)
>>> name
[‘h‘, ‘u‘, ‘z‘, ‘i‘]
>>> name[2:]=list(‘dazhi‘)
>>> name
[‘h‘, ‘u‘, ‘d‘, ‘a‘, ‘z‘, ‘h‘, ‘i‘]
name的内容为“huzi” ,从第3个字符(2)开始替换,用“da”替换“zi”并被扩容“zhi”,所以新的name的内容为“hudazhi”。
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
列表方法
对象.方法 (参数)
1、append
append方法用于在列表末尾追加新的对象:
>>> abc = [1,2,3]
>>> abc.append(4)
>>> abc
[1, 2, 3, 4]
2、count
count方法统计某个元素在列表中出现的次数:
>>>
[‘to‘,‘be‘,‘or‘,‘not‘,‘to‘,‘be‘,].count(‘to‘)
2
>>> x = [[1,2],1,1,[2,1,[1,2]]]
>>> x.count(1)
2
>>> x.count([1,2])
1
3、extend
extend方法可以在列表的末尾一次性追加另一个序列中的多个值。用新列表扩展原有列表:
>>>
a = [1,2,3]
>>> b = [4,5,6]
>>> a.extend(b)
>>> a
[1, 2, 3, 4, 5, 6]
4、index
index 方法用于从列表中找出某个值第一个匹配项的。
>>>
knights = [‘We‘,‘are‘,‘the‘,‘kninghts‘,‘who‘,‘say‘,‘ni‘]
>>> knights.index(‘who‘)
4
>>> knights[4]
‘who‘
5、insert
insert 方法用于将对象插入到列表中:
>>> numbers = [1,2,3,5,6,7]
>>> numbers.insert(3,‘four‘) #插在前面
>>> numbers
[1, 2, 3, ‘four‘, 5, 6, 7]
6、pop
pop 方法会移除列表中一个元素(默认是最后一个),并且返回该元素的值:
>>>
x = [1,2,3]
>>> x.pop()
3
>>> x
[1, 2]
>>> x.pop(0)
1
>>> x
[2]
模拟压栈、出栈
>>>
a=[]
>>> a.append(0) #压栈
>>>
a.append(1)
>>>
a.append(2)
>>>
a
[0, 1, 2]
>>> a.pop() #出栈
2
>>>
a.pop()
1
>>>
a.pop()
0
模拟队列
>>> a.insert(0,0) #入队
>>>
a.insert(0,1)
>>>
a.insert(0,2)
>>>
a
[2, 1, 0]
>>> a.pop() #出队
0
>>>
a.pop()
1
>>>
a.pop()
2
>>>
a
[]
或者:
>>> a.append(0) #入队
>>>
a.append(1)
>>>
a.append(2)
>>>
a
[0, 1, 2]
>>> a.pop(0) #出队
0
>>>
a.pop(0)
1
>>>
a.pop(0)
2
>>>
a
[]
7、remove
remove 方法用于移除列表中某个值的第一个匹配项: #没有返回值,和pop相反
>>>
x = [‘to‘,‘be‘,‘or‘,‘not‘,‘to‘,‘be‘]
>>> x.remove(‘be‘)
>>> x
[‘to‘, ‘or‘, ‘not‘, ‘to‘, ‘be‘]
8、reverse
revers方法将列表中的元素反向存放
>>>
x = [1,2,3]
>>> x.reverse()
>>> x
[3, 2, 1]
也可以这样实现:
>>> list(reversed(x))
[3,
2, 1]
9、sort
sort方法用于在原位置对列表进行排序。在“原位置排序”改变原来的列表,从而让其中的元素能按一定的顺序排列(没有返回值)。
>>>
x = [4,6,2,1,7,9]
>>> x.sort()
>>> x
[1, 2, 4, 6, 7, 9]
>>> x = [4,6,2,1,7,9]
>>> y = x #副本排序
>>> y.sort()
>>>
y
[1,
2, 4, 6, 7, 9]
#另外一种副本排序方法
>>>
x = [4,6,2,1,7,9]
>>> y = sorted(x)
>>>
y
[1,
2, 4, 6, 7, 9]
>>>
x
[4,
6, 2, 1, 7, 9]
sorted可用于任何序列
>>>
sorted(‘python‘)
[‘h‘, ‘n‘,
‘o‘, ‘p‘, ‘t‘, ‘y‘]
10、高级排序
list去重: {}.fromkeys(list).keys()
list字符排序: list.sort(key=int) list.sort(key=len) #指定排序键类型
list.sort(reverse=True) #反向排序