Python3 自学笔记第二章【列表】
- 2.1列表是什么 列表由一系列按特定顺序的元素组成,在 Python 中用方括号( [ ] )来表示列表,并用逗号来分隔其中的元素,例:
1 2 3 4 5 list1 = ['a' ,'b' ,'c' ,'d' ,'e' ,'f' ] list2 = ['abc' , 'xyz' , 2018 , 2020 ] list3 = [1 , 2 , 3 , 4 , 5 ,6 ] list4 = ["a" , "b" , "c" , "d" ] print(list1, list2, list3 ,list4)
输出结果如下:
1 ['a' , 'b' , 'c' , 'd' , 'e' , 'f' ] ['abc' , 'xyz' , 2018 , 2020 ] [1 , 2 , 3 , 4 , 5 , 6 ] ['a' , 'b' , 'c' , 'd' ]
- 2.1.1访问列表元素 列表是有序集合,因此要访问列表的元素,只需要将该元素的位置或索引告诉Python即可,注意:在Python中的第一个列表元素的索引为0,而不是1
1 2 3 4 5 list = ['a' ,'b' ,'c' ,'d' ,'e' ,'f' ] print(list[0 ]) print(list[3 ]) print(list[-1 ]) print(list[-3 ])
输出结果如下:
- 2.1.2列表切片 1 2 3 4 5 6 7 8 9 10 11 list = ['a' ,'b' ,'c' ,'d' ,'e' ,'f' ] print(list[:]) print(list[:3 ]) print(list[3 :]) print(list[1 :4 ]) print(list[4 :1 ]) print(list[-1 :-3 ]) print(list[-3 :-1 ]) print(list[1 :5 :2 ]) print(list[5 :1 :-1 ]) print(list[::-1 ])
输出结果如下:
1 2 3 4 5 6 7 8 9 10 ['a' , 'b' , 'c' , 'd' , 'e' , 'f' ] ['a' , 'b' , 'c' ] ['d' , 'e' , 'f' ] ['b' , 'c' , 'd' ] [] [] ['d' , 'e' ] ['b' , 'd' ] ['f' , 'e' , 'd' , 'c' ] ['f' , 'e' , 'd' , 'c' , 'b' , 'a' ]
- 2.1.3使用列表中的各个值 可像使用其他变量一样使用列表中的各个值,例如,我们可以使用拼接根据列表中的值来创建消息:
1 2 3 list = ['python' , 'c' , 'c++' , 'java' , 'php' ] message = "My favorite language is " + list[0 ].title() + "!" print(message)
输出结果如下:
1 My favorite language is Python!
- 2.1.4修改元素 修改列表元素的语法与访问列表元素的语法类似,要修改列表元素,可指定列表名和要修改的元素的索引,再次指定该元素的新值:
1 2 3 4 names = ['zhangsan' , 'lishi' , 'wanger' , 'liming' , 'xiaowang' ] print(names) names[1 ] = 'lifang' print(names)
输出结果如下:
1 2 ['zhangsan' , 'lishi' , 'wanger' , 'liming' , 'xiaowang' ] ['zhangsan' , 'lifang' , 'wanger' , 'liming' , 'xiaowang' ]
- 2.1.5添加元素 - 使用方法 append() 在列表末尾添加元素 1 2 3 4 list = ['a' , 'b' , 'c' , 'd' , 'e' , 'f' ] print(list) list.append('g' ) print(list)
输出结果如下:
1 2 ['a' , 'b' , 'c' , 'd' , 'e' , 'f' ] ['a' , 'b' , 'c' , 'd' , 'e' , 'f' , 'g' ]
- 使用方法 insert() 在列表指定位置添加元素
1 2 3 4 list = ['a' , 'b' , 'c' , 'd' , 'e' , 'f' ] print(list) list.insert(2 ,"h" ) print(list)
输出结果如下:
1 2 ['a' , 'b' , 'c' , 'd' , 'e' , 'f' ] ['a' , 'b' , 'h' , 'c' , 'd' , 'e' , 'f' , 'g' ]
- 2.1.6删除元素 - 使用 del 语句删除元素
1 2 3 4 list = ['a' , 'b' , 'c' , 'd' , 'e' , 'f' ] print(list) del list[3 ]print(list)
输出结果如下:
1 2 list = ['a' , 'b' , 'c' , 'd' , 'e' , 'f' ] list = ['a' , 'b' , 'c' , 'e' , 'f' ]
- 使用方法 pop() 删除最后一个元素 方法 pop() 可以删除列表末尾的元素,并让你能够接着使用它。术语
弹出(pop) 源自这样的类比:列表就像是一个栈,而删除列表末尾的元素就相当于弹出栈顶元素:
1 2 3 4 5 list = ['a' , 'b' , 'c' , 'd' , 'e' , 'f' ] print(list) new_list = list.pop() print(list) print(new_list)
输出结果如下:
1 2 3 ['a' , 'b' , 'c' , 'd' , 'e' , 'f' ] ['a' , 'b' , 'c' , 'd' , 'e' ] f
- 使用方法 pop() 删除任意位置元素 可以使用 pop() 来删除列表中任何位置的元素,只需要在括号中指定要删除的元素的索引即可:
1 2 3 4 5 list = ['a' , 'b' , 'c' , 'd' , 'e' , 'f' ] print(list) new_list = list.pop(1 ) print(list) print(new_list)
输出结果如下:
1 2 3 ['a' , 'b' , 'c' , 'd' , 'e' , 'f' ] ['a' , 'c' , 'd' , 'e' , 'f' ] b
- 使用方法 remove() 删除未知位置元素 当我们不知道元素的位置,只知道元素的值的时候,就可以使用方法 remove()
1 2 3 4 list = ['a' , 'b' , 'c' , 'd' , 'e' , 'f' ] print(list) list.remove('d' ) print(list)
输出结果如下:
1 2 ['a' , 'b' , 'c' , 'd' , 'e' , 'f' ] ['a' , 'b' , 'c' , 'e' , 'f' ]
#
- 2.1.7使用方法 index() 查找指定元素位置
1 2 list = ["a" , "b" , "c" , "d" , "e" , "a" ] print(list.index('c' ))
输出结果如下:
- 2.1.8使用方法 count() 统计指定元素数量 1 2 list = ["a" , "b" , "c" , "d" , "e" , "a" ] print(list.count('a' ))
输出结果如下:
- 2.1.9清空列表 1 2 3 list = ["a" , "b" , "c" , "d" , "e" , "a" ] list.clear() print(list)
输出结果如下:
- 2.2组织列表 在创建的列表中,元素的排列顺序常常是无法预测的,因为我们并非总能控制用户提供数据的顺序。有时候,我们希望保留列表元素最初的排列顺序,而有时候又需要调整排列顺序。Python提供了很多组织列表的方式,可根据具体情况选用
- 2.2.1使用方法 sort() 对列表进行永久排序 使用方法 sort() 可以对列表按照特殊符号,数字,大写字母,小写字母顺序进行永久排序:
1 2 3 cars = ['bmw' , 'audi' , 'toyota' , 'subaru' ] cars.sort() print(cars)
输出结果如下:
1 ['audi' , 'bmw' , 'subaru' , 'toyota' ]
还可以按与字母顺序相反的顺序排列列表元素,只需要向 sort() 方法传递参数 reverse = True 就可以了:
1 2 3 cars = ['bmw' , 'audi' , 'toyota' , 'subaru' ] cars.sort(reverse = True ) print(cars)
输出结果如下:
1 ['toyota' , 'subaru' , 'bmw' , 'audi' ]
- 2.2.2使用函数 sorted() 对列表进行临时排序 要保留列表元素原来的排列顺序,同时以特定的顺序呈现它们,可使用函数sorted()。函数sorted()让你能够按特定顺序显示列表元素,同时不影响它们在列表中的原始排列顺序:
1 2 3 4 5 6 7 8 9 cars = ['bmw' , 'audi' , 'toyota' , 'subaru' ] print("Here is the original list:" ) print(cars) print("\nHere is the sorted list:" ) print(sorted(cars)) print("\nHere is the sorted reverse list:" ) print(sorted(cars, reverse=True )) print("\nHere is the original list again:" ) print(cars)
输出结果如下:
1 2 3 4 5 6 7 8 9 10 11 Here is the original list: ['bmw' , 'audi' , 'toyota' , 'subaru' ] Here is the sorted list: ['audi' , 'bmw' , 'subaru' , 'toyota' ] Here is the sorted reverse list: ['toyota' , 'subaru' , 'bmw' , 'audi' ] Here is the original list again: ['bmw' , 'audi' , 'toyota' , 'subaru' ]
- 2.2.3使用方法 reverse() 对列表进行反向排序 要反转列表元素的排列顺序,可使用方法 reverse()
1 2 3 cars = ['bmw' , 'audi' , 'toyota' , 'subaru' ] cars.reverse() print(cars)
输出结果如下:
1 ['subaru' , 'toyota' , 'audi' , 'bmw' ]
- 2.2.4确定列表的长度 使用函数 len() 可以快速获悉列表的长度:
1 2 3 >>>cars = ['bmw' , 'audi' , 'toyota' , 'subaru' ] >>>len(cars) 4
- 2.2.5合并列表 - 使用方法 extend() 合并列表
1 2 3 4 5 list1 = [1 , 2 , 3 , 4 ] list2 = ['a' , 'b' , 'c' , 'd' ] list1.extend(list2) print(list1) print(list2)
输出结果如下:
1 2 [1 , 2 , 3 , 4 , 'a' , 'b' , 'c' , 'd' ] ['a' , 'b' , 'c' , 'd' ]
- 使用 “+” 号合并列表
1 2 3 4 list1 = [1 , 2 , 3 , 4 ] list2 = ['a' , 'b' , 'c' , 'd' ] print(list1 + list2) print(list2 + list1)
输出结果如下:
1 2 [1 , 2 , 3 , 4 , 'a' , 'b' , 'c' , 'd' ] ['a' , 'b' , 'c' , 'd' , 1 , 2 , 3 , 4 ]
- 使用切片合并列表
1 2 3 4 5 6 7 8 9 10 11 12 13 14 list1 = [1 , 2 , 3 , 4 ] list2 = ['a' , 'b' , 'c' , 'd' ] list1[len(list1) : len(list1)] = list2 print(list1) list1 = [1 , 2 , 3 , 4 ] list2 = ['a' , 'b' , 'c' , 'd' ] list1[0 :0 ] = list2 print(list1) list1 = [1 , 2 , 3 , 4 ] list2 = ['a' , 'b' , 'c' , 'd' ] list1[1 :1 ] = list2 print(list1)
输出结果如下:
1 2 3 [1 , 2 , 3 , 4 , 'a' , 'b' , 'c' , 'd' ] ['a' , 'b' , 'c' , 'd' , 1 , 2 , 3 , 4 ] [1 , 'a' , 'b' , 'c' , 'd' , 2 , 3 , 4 ]