一.可对列表进行的操作
1.值的访问、修改、添加以及删除
list_1 = ['a','b','c']
list_1[0] = 'r' #修改单个值,这里注意值修改之后list_1[0]的地址也随之变了
list_1 = ['e','f','g'] #整体赋值
list_1.append('g') #添加值,添加位置始终为列表末尾
list_1.insert(pos,'h') #插入值,pos为插入位置,省略pos将出错
del list_1[0],list_1[1] #删除list_1[0]、list_1[1]
list_1.pop(x) #删除x位置处的值并得到它,x是索引,如果不指定x则默认删除最后一个元素
list_1.remove('a') #删除值为'a'的元素并得到它,如果有多个,默认删除第一个
2.+、*、+=、in、以及切片
+:组合列表:
list_1 = [1,2,3]
list_2 = [4,5,6]
list_3 = list_1 + list_2
print(list_3)
#输出:
[1, 2, 3, 4, 5, 6]
*:复制列表:
list_1 = ['hi']
list_1 = list_1 * 3
print(list_1)
#输出: ['hi', 'hi', 'hi']
+= :拼接列表:
list_1 = [1,2,3]
list_1 += [4,5,6]
print(list_1)
#输出:
[1, 2, 3, 4, 5, 6]
in :判断元素是否在列表中:
>>> list_1 = [1,2,3]
>>> 1 in list_1
True
切片:截取列表
'''
这里多提以下切片的详细用法,之前的文章里面只说了切片有两个参数[start:end],其实
切片有三个参数,即[start:end:step],step可以理解为步长,即告诉Python以怎样的步长遍历
数据进而得到切片,只不过大部分情况下把step省略了,step被省略则默认step为1,即步长为1
'''
3.创建空列表
如果想创建一个占用空间但里面不存在值的列表该怎么做呢?
temp_list = [0] * 10 #创建占有10个空间的列表,并且每个列表元素初始化为0
temp_list = [None] * 10 #创建占有10个空间的列表,并且列表内为空,Python中None即空
4.一些小细节
Python中的列表是链式存储,并非顺序存储;
通过整体赋值得到的列表并非复制出的新列表,如果要复制列表就用切片;
二.嵌套
1.列表嵌套列表(二维列表)
list_1 = ['a','b','c']
list_2 = ['d','e','f']
list_3 = ['g','h','i']
list_z = [list_1,list_2,list_3]
print(list_z)# [['a', 'b', 'c'], ['d', 'e', 'f'], ['g', 'h', 'i']]
print(list_z[1][1])# e
print(list_z[0]) # ['a', 'b', 'c']
利用列表解析生成二维列表:
列表解析在我另一篇文章中有讲解,这里再简单提一下:
list_1 = [value**2 for value in range(1,6)]
print(list_1)# [1, 4, 9, 16, 25]
#如上,列表解析可以让for循环生成列表的方式更简洁,前面的value表达式控制每一个生成的数的变形
生成二维列表:
list_1 = [[col**2 for col in range(1,5)] for row in range(1,5)]
print(list_1)# [[1, 4, 9, 16], [1, 4, 9, 16], [1, 4, 9, 16], [1, 4, 9, 16]]
#二维列表其实就是把单纯的列表解析中的第一个value表达式替换为又一个列表解析
2.列表嵌套元组
3.列表嵌套字典
三.列表常用函数&方法
函数:
- len() :获取列表长度;
- max() :返回列表最大值;
- min()
- list() :将元组转换为列表;
方法:
-
list.append(obj) :在列表末尾添加对象obj,obj不局限于数值和字符串;
-
list.count(obj) :统计元素obj在列表中出现的次数;
-
list.index(obj) :查找obj第一次在列表中出现的位置,返回索引;
-
list.insert(index,obj):在index位置插入对象obj;
-
list.pop(index=-1) :删除index位置处的值并得到它,index默认为-1;
-
list.remove(obj) :删除列表中值为obj的第一个匹配对象;
-
list.reverse() :永久反转列表;
-
list.reversed() :临时反转列表;
-
list.sort() :永久对列表排序;
-
list.sorted() :临时对列表排序;
-
list.copy() :复制列表;
-
list.clear() :清空列表;