如何创建列表?

在 Python 编程中,列表是通过将所有项目(元素)放在方括号内来创建的[],用逗号分隔。
它可以有任意数量的项目,它们可能是不同的类型(整数、浮点数、字符串等)。
# empty list my_list = [] # list of integers my_list = [1, 2, 3] # list with mixed data types my_list = [1, “Hello”, 3.4]
一个列表也可以有另一个列表作为一个项目。这称为嵌套列表。
# nested list my_list = [“mouse”, [8, 4, 6], [‘a’]]


访问列表元素

我们可以通过多种方式访问列表的元素。

列表索引

我们可以使用索引运算符[]来访问列表中的项目。在 Python 中,索引从 0 开始。因此,具有 5 个元素的列表将具有从 0 到 4 的索引。
尝试访问除这些之外的索引会引发IndexError. 索引必须是整数。我们不能使用 float 或其他类型,这将导致TypeError.
使用嵌套索引访问嵌套列表。

List indexing my_list = [‘p’, ‘r’, ‘o’, ‘b’, ‘e’] # Output: p print(my_list[0]) # Output: o print(my_list[2]) # Output: e print(my_list[4]) # Nested List n_list = [“Happy”, [2, 0, 1, 5]] # Nested indexing print(n_list[0][1]) print(n_list[1][3]) # Error! Only integer can be used for indexing print(my_list[4.0])
输出
磷 ○ 电子 一种 5 回溯(最近一次调用最后一次): 文件“”,第 21 行,在 中 类型错误:列表索引必须是整数或切片,而不是浮点数


负索引

Python 允许对其序列进行负索引。索引 -1 表示最后一项,-2 表示倒数第二项,依此类推。

Negative indexing in lists my_list = [‘p’,’r’,’o’,’b’,’e’] print(my_list[-1]) print(my_list[-5])
当我们运行上面的程序时,我们将得到以下输出:
电子 磷
image.png
Python 中的列表索引


如何在 Python 中对列表进行切片?

我们可以使用切片运算符:(冒号)访问列表中的一系列项目。

List slicing in Python my_list = [‘p’,’r’,’o’,’g’,’r’,’a’,’m’,’i’,’z’] # elements 3rd to 5th print(my_list[2:5]) # elements beginning to 4th print(my_list[:-5]) # elements 6th to end print(my_list[5:]) # elements beginning to end print(my_list[:])
输出
[‘o’, ‘g’, ‘r’] [‘p’, ‘r’, ‘o’, ‘g’] [‘a’, ‘m’, ‘i’, ‘z’] [‘p’, ‘r’, ‘o’, ‘g’, ‘r’, ‘a’, ‘m’, ‘i’, ‘z’]
通过考虑元素之间的索引,可以最好地可视化切片,如下所示。所以如果我们想访问一个范围,我们需要两个索引来从列表中切出该部分。
image.png
从 Python 列表中的元素切片


添加/更改列表元素

列表是可变的,这意味着与stringtuple不同,它们的元素可以更改。
我们可以使用赋值运算符=来更改项目或项目范围。

Correcting mistake values in a list odd = [2, 4, 6, 8] # change the 1st item odd[0] = 1 print(odd) # change 2nd to 4th items odd[1:4] = [3, 5, 7] print(odd)
输出
[1, 4, 6, 8] [1, 3, 5, 7]

我们可以使用append()方法将一项添加到列表中,也可以使用方法添加多项extend()。

Appending and Extending lists in Python odd = [1, 3, 5] odd.append(7) print(odd) odd.extend([9, 11, 13]) print(odd)
输出
[1, 3, 5, 7] [1, 3, 5, 7, 9, 11, 13]
我们还可以使用+运算符来组合两个列表。这也称为串联。
该*操作重复次数达到一定数目的清单。

Concatenating and repeating lists odd = [1, 3, 5] print(odd + [9, 7, 5]) print([“re”] 3)
*输出

[1, 3, 5, 9, 7, 5] [‘是’,’是’,’是’]
此外,我们可以使用 方法在所需位置插入一个项目,insert()或者通过将其压缩到列表的空切片中来插入多个项目。

Demonstration of list insert() method odd = [1, 9] odd.insert(1,3) print(odd) odd[2:2] = [5, 7] print(odd)
输出
[1, 3, 9] [1, 3, 5, 7, 9]


删除/移除列表元素

我们可以使用关键字从列表中删除一项或多项del。它甚至可以完全删除列表。

Deleting list items my_list = [‘p’, ‘r’, ‘o’, ‘b’, ‘l’, ‘e’, ‘m’] # delete one item del my_list[2] print(my_list) # delete multiple items del my_list[1:5] print(my_list) # delete entire list del my_list # Error: List not defined print(my_list)
输出
[‘p’, ‘r’, ‘b’, ‘l’, ‘e’, ‘m’] [‘p’, ‘m’] 回溯(最近一次调用最后一次): 文件“”,第 18 行, NameError:未定义名称“my_list”
我们可以使用remove()method 删除给定的项目或pop()方法删除给定索引处的项目。
pop()如果未提供索引,该方法将删除并返回最后一项。这有助于我们将列表实现为堆栈(先进后出数据结构)。
我们也可以使用clear()方法清空一个列表。

my_list = [‘p’,’r’,’o’,’b’,’l’,’e’,’m’] my_list.remove(‘p’) # Output: [‘r’, ‘o’, ‘b’, ‘l’, ‘e’, ‘m’] print(my_list) # Output: ‘o’ print(my_list.pop(1)) # Output: [‘r’, ‘b’, ‘l’, ‘e’, ‘m’] print(my_list) # Output: ‘m’ print(my_list.pop()) # Output: [‘r’, ‘b’, ‘l’, ‘e’] print(my_list) my_list.clear() # Output: [] print(my_list)
输出
[‘r’, ‘o’, ‘b’, ‘l’, ‘e’, ‘m’] ○ [‘r’, ‘b’, ‘l’, ‘e’, ‘m’] 米 [‘r’, ‘b’, ‘l’, ‘e’] []
最后,我们还可以通过为元素切片分配一个空列表来删除列表中的项目。
>>> my_list = [‘p’,’r’,’o’,’b’,’l’,’e’,’m’] >>> my_list[2:3] = [] >>> my_list [‘p’, ‘r’, ‘b’, ‘l’, ‘e’, ‘m’] >>> my_list[2:5] = [] >>> my_list [‘p’, ‘r’, ‘m’]


Python 列表方法

下面列出了 Python 编程中列表对象可用的方法。
它们作为list.method(). 上面已经使用了一些方法。

Python 列表方法
append() -
在列表末尾添加一个元素
扩展()
-
将列表的所有元素添加到另一个列表
insert()
-
在定义的索引处插入一个项目
remove()
-
从列表中删除一个项目
pop()
-
删除并返回给定索引处的元素
clear()
- 从列表中删除所有项目
index()
- 返回第一个匹配项的索引
count()
- 返回作为参数传递的项目数的计数
sort()
- 按升序对列表中的项目进行排序
reverse()
- 反转列表中项目的顺序
copy()
-
返回列表的浅拷贝

Python 列表方法的一些示例:

Python list methods my_list = [3, 8, 1, 6, 0, 8, 4] # Output: 1 print(my_list.index(8)) # Output: 2 print(my_list.count(8)) my_list.sort() # Output: [0, 1, 3, 4, 6, 8, 8] print(my_list) my_list.reverse() # Output: [8, 8, 6, 4, 3, 1, 0] print(my_list)
输出
1 2 [0, 1, 3, 4, 6, 8, 8] [8, 8, 6, 4, 3, 1, 0]


列表理解:创建列表的优雅方式

列表推导式是一种优雅而简洁的方式,可以从 Python 中的现有列表创建新列表。
列表推导式包含一个表达式,后跟方括号内的for 语句
这是一个示例,用于制作一个列表,其中每个项目的幂都是 2 的递增。

pow2 = [2 x for x in range(10)] print(pow2)
输出
[1, 2, 4, 8, 16, 32, 64, 128, 256, 512]
此代码等效于:
pow2 = [] for x in range(10): pow2.append(2
x)
列表推导式可以选择包含更多for或if 语句。可选if语句可以过滤掉新列表的项目。这里有些例子。
>>> pow2 = [2 ** x for x in range(10) if x > 5] >>> pow2 [64, 128, 256, 512] >>> odd = [x for x in range(20) if x % 2 == 1] >>> odd [1, 3, 5, 7, 9, 11, 13, 15, 17, 19] >>> [x+y for x in [‘Python ‘,’C ‘] for y in [‘Language’,’Programming’]] [‘Python Language’, ‘Python Programming’, ‘C Language’, ‘C Programming’]


Python 中的其他列表操作

列表成员测试

我们可以使用关键字 测试一个项目是否存在于列表中in。

my_list = [‘p’, ‘r’, ‘o’, ‘b’, ‘l’, ‘e’, ‘m’] # Output: True print(‘p’ in my_list) # Output: False print(‘a’ in my_list) # Output: True print(‘c’ not in my_list)
输出
真的 错误的 真的


遍历列表

使用for循环,我们可以遍历列表中的每个项目。

for fruit in [‘apple’,’banana’,’mango’]: print(“I like”,fruit)
输出
我喜欢苹果 我喜欢香蕉 我喜欢芒果