列表是由一系列按特定顺序排列的元素组成。 列表可以包含不同类型的元素。列表内元素的值可以重复。 列表通常用单词名称的复数表示。 列表用方括号 [ ] 表示,元素用 , 隔开。 >>> numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> print(numbers) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> type(numbers) <class 'list'> >>> list = [1, 'Hello', True, 12.56] >>> print(list) [1, 'Hello', True, 12.56]
正向获取列表元素
Python获取列表的元素可以类似看作在C++或Java中获取数组的元素,只需要提供该列表名以及对应的元素索引即可获取相应元素。注意:索引值从0开始,即获取列表元素的索引范围为 0 ~ 列表长度-1 。 >>> fruits = ['apple', 'pear', 'peach', 'grape', 'banana', 'pineapple', 'lemon'] >>> print(fruits[1]) pear
逆向获取列表元素 当然,Python还提供了相当方便的获取列表倒数某个元素的写法,即获取倒数第一个元素的索引为 -1 ,获取倒数第二个元素的索引为 -2 ,以此类推,获取列表倒数某个元素的索引范围为 -1 ~ -列表长度 。 >>> fruits = ['apple', 'pear', 'peach', 'grape', 'banana', 'pineapple', 'lemon'] >>> print(fruits[-5]) peach
使用 index() 方法,可以传入要查找的参数,如果在列表中查出有此值,则返回对应值的索引。如果没有找到,则报ValueError错误。 >>> fruits = ['apple', 'pear', 'peach', 'grape', 'banana', 'pineapple', 'lemon'] >>> fruits.index('grape') 3 >>> fruits.index('people') Traceback (most recent call last): File "<pyshell#12>", line 1, in <module> fruits.index('people') ValueError: 'people' is not in list
在列表末尾添加元素
想要直接在列表末尾添加元素,可以直接使用 append() 方法,将要插入到列表尾的元素作为参数传给此方法。 >>> list1 = ['abc', 'edf'] >>> list1.append('ghi') >>> print(list1) ['abc', 'edf', 'ghi']
在列表中的某个位置添加元素 想要在列表的特定位置添加元素,可以使用 insert() 方法,此方法有两个参数,第一个参数为要插入元素的索引值(从0开始),第二个参数给出要插入的元素值。 >>> list2 = [123, 456] >>> list2.insert(1,789) >>> print(list2) [123, 789, 456]
修改列表元素的方法跟取列表中元素的方法类似,只要给出列表名以及索引,用赋值语句对其进行修改就行。 >>> list3 = [11, 22, 33, 44] >>> list3[1] = 99 >>> print(list3) [11, 99, 33, 44] >>> list3[-2] = 0 >>> print(list3) [11, 99, 0, 44]
删除列表中特定位置的元素
使用 del 语句,可以删除列表中特定位置的元素。 >>> list4 = [11, 22, 33, 44, 55] >>> del list4[2] >>> print(list4) [11, 22, 44, 55] >>> del list4[-1] >>> print(list4) [11, 22, 44]
删除列表中最后一个元素并返回其值
使用 pop() 方法,可以将列表最后一个元素弹出,并取得元素的值。 >>> list5 = [10, 11, 12, 13, 14, 15] >>> x = list5.pop() >>> print(x) 15 >>> print(list5) [10, 11, 12, 13, 14]
删除列表中任何一个元素并返回其值
使用 pop() 方法并代入索引值作为其参数,可以将列表某个位置上的元素弹出,并取得元素的值。 >>> list6 = ['a', 'b', 'c', 'd'] >>> y = list6.pop(2) >>> print(y) c >>> print(list6) ['a', 'b', 'd']
删除列表中第一次出现的指定元素 使用 remove() 方法,传入元素的值作为参数,即可将列表中第一次出现的该元素删除。 >>> list7 = [1, 2, 3, 4, 2, 3] >>> list7.remove(2) >>> print(list7) [1, 3, 4, 2, 3]
删除列表中所有指定元素
使用while循环搭配 remove() 方法,可以删除列表中所有指定元素。 >>> list7 = [1, 2, 3, 4, 2, 3] >>> while 2 in list7: list7.remove(2) >>> print(list7) [1, 3, 4, 3]
删除列表的所有元素 使用 clear() 方法,即可将列表的所有元素删除。 >>> list8 = [1, 2, 3] >>> list8.clear() >>> print(list8) []
删除列表中指定范围内的元素
使用 del 删除列表一段连续的元素,方法跟字符串切片类似。 >>> list9 = [20, 21, 22, 23, 24, 25, 26] >>> del list9[1:4] >>> print(list9) [20, 24, 25, 26]
列表连接与字符串连接类似,使用+号即可。下面的例子演示了如何将两个列表连接到一起。 >>> list9 = [1, 2, 3] >>> list9 = list9 + ['a', 'b', 'c'] >>> print(list9) [1, 2, 3, 'a', 'b', 'c']
永久排序
使用 sort() 方法,可以对列表进行排序,使用此方法后,列表就是已经排完序的了,不可恢复原排序。默认排序是按升序,即字母按a~z进行排序。 >>> fruits = ['apple', 'pear', 'peach', 'grape', 'banana', 'pineapple', 'lemon'] >>> fruits.sort() >>> print(fruits) ['apple', 'banana', 'grape', 'lemon', 'peach', 'pear', 'pineapple']
如果想要让列表进行逆序排序,可以在 sort() 方法中加入参数 reverse=True 。 >>> fruits = ['apple', 'pear', 'peach', 'grape', 'banana', 'pineapple', 'lemon'] >>> fruits.sort(reverse=True) >>> print(fruits) ['pineapple', 'pear', 'peach', 'lemon', 'grape', 'banana', 'apple']
临时排序
使用 sorted() 方法,可以对列表进行临时排序,使用此方法后,列表还是原排序。 >>> fruits = ['apple', 'pear', 'peach', 'grape', 'banana', 'pineapple', 'lemon'] >>> print(sorted(fruits)) ['apple', 'banana', 'grape', 'lemon', 'peach', 'pear', 'pineapple'] >>> print(fruits) ['apple', 'pear', 'peach', 'grape', 'banana', 'pineapple', 'lemon']
随机排序
使用Python的random模块函数shuffle(),可以对列表进行随机排序,此排序的结果是永久的。 >>> import random >>> fruits = ['apple', 'pear', 'peach', 'grape', 'banana', 'pineapple', 'lemon'] >>> print(fruits) ['apple', 'pear', 'peach', 'grape', 'banana', 'pineapple', 'lemon'] >>> random.shuffle(fruits) >>> print(fruits) ['pineapple', 'banana', 'lemon', 'apple', 'pear', 'peach', 'grape']
使用 reverse() 方法,可以对列表进行反转。 >>> list10 = [2, 5, 9, 6, 3] >>> list10.reverse() >>> print(list10) [3, 6, 9, 5, 2]
使用 len() 方法,可以获取列表的长度。 >>> fruits = ['apple', 'pear', 'peach', 'grape', 'banana', 'pineapple', 'lemon'] >>> len(fruits) 7
使用 for 循环,可以遍历整个列表。
>>> citys = ['Beijing', 'Shenzhen', 'Shanghai'] >>> for city in citys: print(city)
Beijing Shenzhen Shanghai
要创建数值列表,我们可以使用函数 list() 将 range() 的结果直接转换为列表。下面的例子演示了如何创建一个包含数值5~10的数值列表。 """ 创建一个包含数值5~10的数值列表 Version: 1.0 Author: Caizi """ numList = list(range(5, 11)) print(numList)
Python中有专门处理数值列表的内置函数,我们可以直接调用这些函数统计数值列表的信息。下面的例子演示了求出数值列表的最大值、最小值和总和。 """ 求出数值列表的最大值、最小值和总和 Version: 1.0 Author: Caizi """ numList = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] print(min(numList)) print(max(numList)) print(sum(numList))
Python中可以在创建列表的时候使用列表解析自动创建列表。下面的例子演示了如何创建一个平方数列表。 """ 创建平方数列表 Version: 1.0 Author: Caizi """ squares = [x**2 for x in range(1, 11)] print(squares)
获取子列表我们使用列表切片方式,列表切片和字符串切片类似,只需要指定切片范围即可。下面的例子演示了对列表的切片操作。 """ 列表的切片操作 Version: 1.0 Author: Caizi """ squares = [1, 4, 9, 16, 25, 36, 49, 64, 81, 100] print(squares[3:6])
我们可以直接在for循环使用列表切片,即可遍历列表的部分元素。下面的例子演示了遍历列表前5个数。 """ 遍历列表前5个数 Version: 1.0 Author: Caizi """ squares = [1, 4, 9, 16, 25, 36, 49, 64, 81, 100] for square in squares[:5]: print(square)
在Python中复制列表,我们可以使用列表切片操作,直接把整个列表切下来做为另一个新列表,完成列表的复制。下面的例子演示了如何使用切片操作复制列表。 """ 复制列表 Version: 1.0 Author: Caizi """ squares = [1, 4, 9, 16, 25, 36, 49, 64, 81, 100] list = squares[:] print(list) list = list * 2 print(list)
注意:在Python复制列表,千万不能使用赋值运算符直接把旧列表赋值给新列表,因为在Python中,赋值运算符赋的是对象的id值,所以使用下面例子的方法直接赋值,它们id值一样,即都指向同一个对象,也就是说你只是取了该对象的一个别名而已,并没有新建新列表。 """ 错误的复制列表方法 Version: 1.0 Author: Caizi """ squares = [1, 4, 9, 16, 25, 36, 49, 64, 81, 100] list = squares print(id(squares)) print(id(list)) print(list)
在Python中,检查元素是否在列表中可以使用in和not in操作符。下面的例子演示了如何检查元素是否在列表中。 """ 检查元素是否在列表中 Version: 1.0 Author: Caizi """ list = [1, 2, 3, 4, 5] print(1 in list) # True print(6 in list) # False
列表多重赋值即用列表中的值为多个变量赋值。多重赋值技巧在Python中很常用到,下面的例子演示了数据的多重赋值和列表的多重赋值。
""" 多重赋值 Version: 1.0 Author: Caizi """ # 数据的多重赋值 a, b, c = 10, 20, 30 print(f'a = {a}') # a = 10 print(f'b = {b}') # b = 20 print(f'c = {c}') # c = 30 # 列表的多重赋值 student = [1001, 'boy', 18] id, sex, age = student print(f'id: {id}') # id: 1001 print(f'sex: {sex}') # sex: boy print(f'age: {age}') # age: 18
在Python中可以调用 enumerate() 函数,此函数返回两个值,一个是表项的索引和表项的本身。下面的例子演示了如何同时取得列表的索引和此索引上的值。
""" 获取列表索引及其对应的值 Version: 1.0 Author: Caizi """ fruits = ['apple', 'peach', 'banana', 'lemon'] for index, item in enumerate(fruits): print(f'index {index} in fruits is: {item}')
|