一、生成一个列表
- 直接生成 L1 = [1, 2, 3, 4, 5]
- 列表解析式
>>> L2 = [x for x in range(1, 10, 2)] #从1到10的迭代,步长为2,形成一个列表>>> print(L2)[1, 3, 5, 7, 9]>>> >>> [x for x in range(10) if x <5] #从0到10当中,小于5的数字形成列表[0, 1, 2, 3, 4]
二、访问列表及列表的切片
list[index] 访问列表中索引处的值
L3 = ["A-0","B-1","C-2",'D-3',"E-4","F-5"]print("第零个元素:",L3[0],"\n第4个元素:",L3[4])#结果为:第零个元素: A-0 第4个元素: E-4
list[0: 3] 对列表中的第0个到第3个元素进行切片,同理还可以 list[ : 3] 或者list[3:6]
L4 = ["北京", "上海", "广州", "深圳", "天津", "重庆", "南京", "成都", "武汉", "长沙", "杭州", "昆明"]print(len(L4)) #len()函数返回列表长度print(L4[0: 4]) #切片从第0个到第4个,输入0,1,2,3这几个索引位置的元素#输出为:12['北京', '上海', '广州', '深圳']#----------------------------------分割线-------------------------------------print(L4[4: 8]) #中间切片print(L4[9: -1]) #第9到-1个print(L4[10: ]) #第10 到最后#输出为:['天津', '重庆', '南京', '成都']['长沙', '杭州']['杭州', '昆明']#----------------------------------分割线-------------------------------------#补充,字符串对象是可迭代的,也可以这样用哦!name = "Josh Vietti"print(len(name))print(name[5:])#结果为:11Vietti
三、列表的函数及操作
3.1 列表的函数
1、len(list) 返回列表长度,字符串也可以这么求长度,以及切片等,如上程序段,最后字符串部分。2、max(list) 返回列表中的最大值3、min(list) 返回列表中最小值4、list(seq) 把元组变为列表也是可以的
注意同类型的数据才能比较大小
l = [1, 3, 5, 4, 8, 11, 7]print("最大值为:max(l) = ",max(l),"\n最小值为:min(l) = ",min(l))tuple1 = (1,3,5,"s")l2 = list(tuple1)print("将元组转变为列表 list(tuple1) --->:",l2)try: max(l2) #l2列表中既有int又有str,数据类型不同不能比较except TypeError as e: print(e)#以上程序运行结果为:最大值为:max(l) = 11 最小值为:min(l) = 1将元组转变为列表 list(tuple1) --->: [1, 3, 5, 's']unorderable types: str() > int()
3.2 列表的操作
1、list.append(obj) 在列表末尾添加对象2、list.count(obj) 统计某元素在列表中出现的次数3、list.extend(list_2) 将list_2列表追加到列表后,融合形成一个新列表4、list.index(ojb) 从列表中找出第一次匹配到该元素的位置5、list.insert(index, obj) 在index 索引位置插入对象obj6、list.pop(index) 删除并且返回索引处的值,默认删除列表最后一个值7、list.remove(obj) 移除列表中obj对象8、list.reverse() 将列表元素反转9、list.sort(key = func, reverse = False) 排序列表,key参数默认None,接受函数作为参数,会将函数应用于列表中的每一个元素。reverse参数False为正向排序,True为反向排序10、list.clear() 清空列表中所有元素,也可以用 del list[ : ] 来清空列表,注意 del list 会把整个列表删除
L1 = ["A", "B", "A", "C"]L2 = ["E", "F"]L1.append("d") #1、list.append() 往L1末尾添加 'd'num_A = L1.count("A") #2、list.count() 统计L1中字符A的个数print("L1:", L1,"\n统计L1中字符A的个数:",num_A)L1.extend(L2) #3、list.extend() 将L2融合到L1中index_d = L1.index("d") #4、list.index() 查找'd'的索引print("新L1:", L1,"\nd的索引为:", index_d)#----------------------------------分割线-------------------------------------#结果为:L1: ['A', 'B', 'A', 'C', 'd'] 统计L1中字符A的个数: 2新L1: ['A', 'B', 'A', 'C', 'd', 'E', 'F'] d的索引为: 4#----------------------------------分割线-------------------------------------L1.remove("d") #list.remove() 移除L1当中的'd'print("移除'd'后的L1:", L1)L1.insert(1, "D") #list.insert() 往L1索引1处插入大写'D'L2.insert(2,3) #list.insert() 往L2索引2处插入数字3print("新L1:", L1, "\nL2:", L2)#----------------------------------分割线-------------------------------------#结果为:移除'd'后的L1: ['A', 'B', 'A', 'C', 'E', 'F']新L1: ['A', 'D', 'B', 'A', 'C', 'E', 'F'] L2: ['E', 'F', 3]#----------------------------------分割线-------------------------------------print("删除并返回L1中的第五个元素:", L1.pop(5),"\nL1:",L1) #使用list.pop(index) 删除指定索引的值print("删除最后一个元素:", L1.pop(), '\n{0: ^8}:'.format("L1"), L1)L1.reverse()print('反置列表:', L1)L1.clear() #list.clear()清空列表 del L2[:] #del list[:] 清空列表print('清空列表L1:', L1)print('清空列表L2:',L2)#----------------------------------分割线-------------------------------------#结果为:删除并返回L1中的第五个元素: E L1: ['A', 'D', 'B', 'A', 'C', 'F']删除最后一个元素: F L1 : ['A', 'D', 'B', 'A', 'C']反置列表: ['C', 'A', 'B', 'D', 'A']清空列表L1: []清空列表L2: []
- list.sort()的应用
l_test = ["a", "B", "c"]l_test.sort(reverse= True)print("默认key=None直接排序,reverse= True 反排:", l_test) #反向排序l_test.sort(key=str.upper)print("默认reverse,key=str.upper 将所有字符大写:", l_test) #正向排序#----------------------------------分割线-------------------------------------#结果为:默认key=None直接排序,reverse= True 反排: ['c', 'a', 'B']默认reverse,key=str.upper 将所有字符大写: ['a', 'B', 'c']