1、列表的创建
方法一:用[]创建
方法二:用list()函数创建列表,list里面要是可迭代的对象(可以直接使用for循环的对象,例如字符,列表,元组,字典)
#使用中括号创建列表
#1、创建空列表
list_one = []
print(list_one,type(list_one))#[] <class 'list'>
#2、列表中的元素类型均为字符串类型
list_two = ['p','y','t','h']
print(list_two,type(list_two))#['p', 'y', 't', 'h'] <class 'list'>
#3、列表中的元素不同类型
list_three = [1,3.14,True,'hello']
print(list_three,type(list_three))#[1, 3.14, True, 'hello'] <class 'list'>
#使用list函数
list_one = list()
print(list_one,type(list_one)) #[] <class 'list'>
2、访问列表元素
list = ['p','y','t','h']
print(list[2:])#获取列表中索引为2至末尾的元素
print(list[:3])#获取列表中索引为0至索引值为3的元素
print(list[:]) #获取列表中的所有元素
3、列表的遍历和排序
遍历
list = list(range(10))
for x in list: #x代表list元素的本身,直接访问
print(x,end=",")
for x in range(10): #用下角标遍历
print(list[x],end=",")
当输出类似于“list[1] = 1”这样,用下角标合适一些。
list = list(range(10))
for x in range(10):
print("list[{}] = {}".format(x, list[x]))
print("list[%d] = %d" % (x,list[x]))
print(f"list[{x}] = {list[x]}")
排序
sort()函数用于按照指定的规则对所有的元素进行排序
sort(key,reverse)
key表示排序规则
reverse表示列表元素排序的方式,默认为False表示升序
listb = [2,33,6,1,12]
listb.sort() #无参数,默认升序排序
print(listb)
listb.sort(reverse=True) #降序排序
print(listb)
#把列表中每一个元素进行比较,比较这个值转成字符串之后从小到大输出
listb.sort(key=str)
print(listb) #[1, 12, 2, 33, 6]
内置函数sorted()
返回的是个新列表,排序后原对象不变。支持使用key参数指定排序规则,key参数的值可以是函数,类,lambda表达式,方法等可调用对象。也可以使用reverse参数同sort()函数
listb = [2,33,6,1,12]
print(sorted(listb)) #[1, 2, 6, 12, 33]
print(listb) #[2, 33, 6, 1, 12]原对象不变
4、添加列表元素
append(x)用于向列表尾部追加一个元素x
extend(x)用于另一个列表L中的所有元素追加到当前列表的尾部
insert(index,x)用于向列表任意指定位置index处插入一个元素x,若插入位置超出列表尾端,则会插入到最后;若插入位置超过列表首端,则会插入到最前面
listb = [2,33,6,1,12]
listb.append(90)
print(listb) #[2, 33, 6, 1, 12,90]
listb.extend([1,2])
print(listb) #[2, 33, 6, 1, 12, 90, 1, 2]
listb.insert(200,2000)
print(listb) #[2, 33, 6, 1, 12, 90, 1, 2, 2000]
5、删除列表元素
可以使用del命令删除列表中指定位置的元素
remove(x)用于删除列表中第一个值与指定值x相等的元素,若x在列表中不存在则抛出异常
pop([index=-1])用于删除并返回指定位置(默认是最后一个)上的元素,index不合法则抛出异常
listb = [2,33,6,1,12]
listb.pop()
print(listb) #[2, 33, 6, 1]
del listb[-1]
print(listb) #[2, 33, 6]
listb.pop(2)
print(listb) #[2, 33]
listb.remove(2)
print(listb) #[33]
6、修改列表元素
直接赋值修改元素
list = ['p','y','t','h']
list[1]='pp'
print(list) #['p', 'pp', 't', 'h']
列表对像支持的运算符
‘+‘号可以连接两个列表,返回新列表,涉及大量元素的复制,效率非常低
‘’号可以用于列表和整数相乘,表示序列重复,返回新列表。运算符=也可以用于列表元素重复,属于原地操作
in运算符用于判断列表中是否含有某个元素
关系运算符可以用来比较列表的大小,逐个比较,直到有结果为止
内置函数对列表的操作
max()、min()函数用于返回列表中所有元素的最大值和最小值
sum()函数用于返回列表中所有元素之和
len()用于返回列表中元素的个数
zip()函数用于将多个列表中元素重新组合为元组并返回包含这些元组zip对象
map()函数把函数映射到列表上的每个元素
filter()函数根据指定元素的返回值对列表元素进行过滤。
7、嵌套列表的创建与访问
#嵌套列表的定义
list = [[1,3],[123,323],[41,53,55]]
#获取嵌套列表的内层列表中的数据
print(list[1][1]) #323
#向嵌套列表中添加数据
list[1].append(23)
print(list) #[[1, 3], [123, 323, 23], [41, 53, 55]]
8、列表推导式
a = [i*i for i in range(1,10,2)] #直接用[]括起来写推导式
print(a) #[1, 9, 25, 49, 81]
a = [i for i in range(5) for j in range(3)]
print(a) #[0, 0, 0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4]
enumerate(),生成一个元组,元组的第一个值为第二个值在列表中的下标。第二个值为列表中的元素
a = [1,2,3,4]
for x,y in enumerate(a):
print(x,y)
'''
0 1
1 2
2 3
3 4
'''