列表是最常用的Python数据类型。
列表的数据项可以是不相同的类型。创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。如下所示:
list1=['first',2,(3,),{'name':'monicx'}]
列表的内置函数:
主要操作:
1、按索引取值。
2、切片(start,end,step)
切片切出来的是子列表。
>>> S=['monicx1','monicx2','monicx3']
>>> S[0:2:1]
['monicx1', 'monicx2']
3、len()长度
长度就是列表元素的个数
4、成员运算in和not in
就是判断某一个元素是不是在这个列表中
5、追加append()和插入insert()
追加是在列表的未尾加入一个元素
插入是在列表某个元素前插入,给出具体的索引,没有索引会报错。
>>> list1=['first',2,(3,),{'name':'monicx'}]
>>> list1.append('zuijia')
>>> list1.insert(3,'charu')
>>> list1
['first', 2, (3,), 'charu', {'name': 'monicx'}, 'zuijia']
6、删除
pop()方法默认删除末尾的元素,它是取走一个值,而remov()它是单纯的删除。
>>> list2=['monicx','miaoqinian']
>>> print(list2.pop())
miaoqinian
>>> list2
['monicx']
>>>
>>> list2=['monicx','miaoqinian']
>>> print(list2.remove('miaoqinian'))
None
>>> list2
['monicx']
>>>
7、循环
list3=['monicx1','monicx2','monicx3','……']
#依赖索引:
# 方式一
i=0
while i<len(list3):
print(list3[i])
i+=1
# 方式二
for i in range(len(list3)):
print(list3[i])
# 不依赖索引:
for i in list3:
print(i)
接着需要撑握:
1、count()
>>> list4=['a','a','b']
>>> print(list4.count('a'))
2
2、extend()和append()
extend()将一个列表中的每个元素都加入到一个列表中。
而append()是将一个列表当成一个元素加入到列表中。
>>> list5=['a','b','c','d','e']
>>> list6=['f','g','h']
>>> list5.extend(list6)
>>> list5
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']
>>> list5=['a','b','c','d','e']
>>> list6=['f','g','h']
>>> list5.append(list6)
>>> list5
['a', 'b', 'c', 'd', 'e', ['f', 'g', 'h']]
>>>
3、index()
index() 函数用于从列表中找出某个值第一个匹配项的索引位置。
该方法返回查找对象的索引位置,如果没有找到对象则抛出异常。
>>> list7=['a','b','c','a','e','a']
>>> print(list7.index('a',2))
3
>>> print(list7.index('a'))
0
>>> print(list7.index('g'))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: 'g' is not in list
4、reverse()
该方法没有返回值,但是会对列表的元素进行反向排序。
5、sort()
sort() 函数用于对原列表进行排序,如果指定参数,则使用比较函数指定的比较函数。
大前提:只能同类型直接比较大小,对于有索引值直接的比较是按照位置一一对应进。
6、clear()
清空一个列表
>>> list8=['a','b','c','a','e','a']
>>> list8.clear()
>>> list8
[]
>>>
7、copy()
深拷贝一个列表的数据到另一个数组:
>>> list9=['a','b','c','a','e','a']
>>> list10=list9.copy()
>>> list10
['a', 'b', 'c', 'a', 'e', 'a']
>>> list10[1]='monicx'
>>> list9
['a', 'b', 'c', 'a', 'e', 'a']
>>> list10
['a', 'monicx', 'c', 'a', 'e', 'a']
引伸1:
"""
生成如下列表:
[[0, 0, 0, 0, 0], [0, 1, 2, 3, 4], [0, 2, 4, 6, 8], [0, 3, 6, 9, 12]]
"""
# 方式一
list1 = []
for i in range(4):
tmp = []
for j in range(5):
tmp.append(j * i)
list1.append(tmp)
print(list1)
# 方式二
ret = [[i * j for j in range(5)] for i in range(4)]
print(ret)
引伸2:
def extend_list(v, li=[]):
li.append(v)
return li
list1 = extend_list(10)
print(list1)
list2 = extend_list(123, [])
list3 = extend_list('a')
print(list1) # [10, 'a']
print(list2) # [123, ]
print(list3) # [10, 'a']
print(list1 is list3) # True
# # 第二题:问以下代码的输出结果是什么?
list1 = ["a", "b", "c", "d", "e"]
print(list1[10:]) # []
# # 第三题:如何打乱一个有序的列表?
list4 = [11, 22, 33, 44, 55]
import random
random.shuffle(list4)
print(list4)
list4.sort()
print(list4)
# 快速复制一个列表
list5 = [11, 22, [33, [44, 55]]]
# list6 = list5
# print(list6)
# list5[2][1][0] = 444
# print(list6)
list7 = list5[:]
print(list7)
list5[2][1][0] = 444
print(list7)
print(id(list7), id(list5))