Python 列表理解、追加、排序、长度 [示例]
什么是 Python 列表?
列表正是它听起来的样子,一个包含不同 Python 对象的容器,可以是整数、单词、值等。它相当于其他编程语言中的数组。它由方括号表示(这是区分它与元组的属性之一,元组由括号分隔)。它也是可变的,即可以修改或更新;不像元组,元组是不可变的。
在本 Python 教程中,您将学习:
- 什么是 Python 列表?
- Python 列表示例:
- 访问列表中的值
- Python 列表切片
- 更新列表
- 删除列表元素
- 附加列表元素
- 列出内置函数(方法)
- 遍历列表
- 列表理解 Python
Python 列表示例:
Python 列表可以是同质的,这意味着它们可以包含相同类型的对象;或异构的,包括不同类型的对象。
同构列表的示例包括:
list of integers = [1, 2, 3, 8, 33] list of animals = ['dog', 'cat', 'goat'] list of names = ['John', 'Travis', 'Sheila'] list of floating numbers = [2.2, 4.5, 9.8, 10.4]
异构列表的示例包括:
[2, 'cat', 34.33, 'Travis'] [2.22, 33, 'pen']
访问列表中的值
要访问列表中的值,可以使用列表中对象的索引。 Python 列表中的索引是指元素在有序列表中的位置。例如:
list = [3, 22, 30, 5.3, 20]
- 上面列表中的第一个值 3 的索引为 0
- 第二个值 22 的索引为 1
- 第三个值 30 的索引为 2
等等。要访问列表中的每个值,您可以使用:
list[0] to access 3 list[1] to access 22 list[2] to access 30 list[3] to access 5.3 list[4] to access 20
也可以使用索引 -1 访问列表的最后一个成员。例如,
list[-1] = 20
Python 列表切片
列表切片是拆分列表子集的方法,列表对象的索引也用于此目的。例如,使用上面相同的列表示例;
list[:] = [3, 22, 30, 5.3, 20] (all the members of the list]; list[1:3] = [22, 30] (members of the list from index 1 to index 3, without the member at index 3); list[:4] = [3, 22, 30, 5.3] (members of the list from index 0 to index 4, without the member at index 4) list[2:-1] = [30, 5.3] (members of the list from index 2, which is the third element, to the second to the last element in the list, which is 5.3).
Python 列表是上限排他的,这意味着列表切片期间的最后一个索引通常会被忽略。这就是为什么
list[2:-1] = [30, 5.3]
,而不是 [30, 5.3, 20]。上面给出的所有其他列表切片示例也是如此。
更新列表
假设您有一个列表 =[物理、化学、数学],并且您想将列表更改为 [生物学、化学、数学],从而有效地更改索引 0 处的成员。这可以通过将该索引分配给你想要的新成员。
也就是说,
list = [physics, chemistry, mathematics] list[0] = biology print(list)
输出:[生物、化学、数学]
这会将索引 0 处的成员(物理)替换为您想要的新值(化学)。这可以针对您要更改的列表的任何成员或子集进行。
再举一个例子;假设您有一个名为 integers 的列表,其中包含数字 [2, 5, 9, 20, 27]。要将列表中的 5 替换为 10,您可以这样做:
integers = [2, 5, 9, 20, 27] integers[1] = 10 print(integers) >>> [2, 10, 9, 20, 27]
要将整数列表的最后一个成员 27 替换为像 30.5 这样的自由数字,您可以使用:
integers = [2, 5, 9, 20, 27] integers[-1] = 30.5 print(integers) >>> [2, 5, 9, 20, 30.5]
删除列表元素
删除列表元素有 3 种 Python 方法:list.remove()、list.pop() 和 del 运算符。 Remove 方法将要删除的特定元素作为参数,而 pop 和 del 将要删除的元素的索引作为参数。例如:
列表 =[3, 5, 7, 8, 9, 20]
要从列表中删除 3(第一个元素),您可以使用:
- list.remove(3) 或
- list.pop[0],或
- 删除列表[0]
要从列表中删除索引 3 处的项目 8,您可以使用:
- list.remove(8),或
- list.pop[3]
附加列表元素
要将元素追加到列表中,请使用 append 方法,这会将元素添加到列表的末尾。
例如:
list_1 = [3, 5, 7, 8, 9, 20] list_1.append(3.33) print(list_1) >>> list_1 = [3, 5, 7, 8, 9, 20, 3.33] list_1.append("cats") print(list_1) >>> list_1 = [3, 5, 7, 8, 9, 20, 3.33, "cats"]
列出内置函数(方法)
以下是列表内置函数和方法的列表及其描述:
- 长度(列表): 这给出了列表的长度作为输出。例如:
numbers = [2, 5, 7, 9] print(len(numbers)) >>> 4
- 最大(列表): 返回列表中具有最大值的项目。例如:
numbers = [2, 5, 7, 9] print(max(numbers)) >>> 9
- 分钟(列表): 返回列表中具有最小值的项目。例如:
numbers = [2, 5, 7, 9] print(min(numbers)) >>> 2
- 列表(元组): 将元组对象转换为列表。例如;
animals = (cat, dog, fish, cow) print(list(animals)) >>> [cat, dog, fish, cow]
- list.append (element):将元素附加到列表中。例如;
numbers = [2, 5, 7, 9] numbers.append(15) print(numbers) >>> [2, 5, 7, 9, 15]
- list.pop (index):从列表中删除指定索引处的元素。例如;
numbers = [2, 5, 7, 9, 15] numbers.pop(2) print(numbers) >>> [2, 5, 9, 15]
- list.remove (element):从列表中删除元素。例如;
values = [2, 5, 7, 9] values.remove(2) print(values) >>> [5, 7, 9]
- list.reverse ():反转列表的对象。例如;
values = [2, 5, 7, 10] values.reverse() print(values) >>> [10, 7, 5, 2]
- list.index (element):获取列表中某个元素的索引值。例如;
animals = ['cat', 'dog', 'fish', 'cow', 'goat'] fish_index = animals.index('fish') print(fish_index) >>> 2
- 总和 (list):如果值都是数字(整数或小数),则获取列表中所有值的总和。例如;
values = [2, 5, 10] sum_of_values = sum(values) print(sum_of_values) >>> 17
如果列表包含任何不是数字的元素,例如字符串,则 sum 方法将不起作用。您会收到一条错误消息:“TypeError :+ 不支持的操作数类型:‘int’和‘str’”
- list.sort():按升序或降序排列整数、浮点数或字符串的列表。例如:
values = [1, 7, 9, 3, 5] # To sort the values in ascending order: values.sort() print(values) >>> [1, 3, 5, 7, 9]
另一个例子:
values = [2, 10, 7, 14, 50] # To sort the values in descending order: values.sort(reverse = True) print(values) >>> [50, 14, 10, 7, 2]
字符串列表也可以按字母顺序或字符串长度排序。例如;
# to sort the list by length of the elements strings = ['cat', 'mammal', 'goat', 'is'] sort_by_alphabet = strings.sort() sort_by_length = strings.sort(key = len) print(sort_by_alphabet) print(sort_by_length) >>> ['cat', 'goat', 'is', 'mammal'] ['is', 'cat', 'goat', 'mammal']
我们可以使用“字符串”按字母顺序对相同的列表进行排序。
遍历列表
循环遍历列表的方式与 Python 中的任何其他循环函数相同。这样,一个方法可以同时对列表的多个元素执行。例如:
列表 =[10, 20, 30, 40, 50, 60, 70]。
遍历这个列表的所有元素,比方说,给每个元素加 10:
for elem in list: elem = elem + 5 print(elem) >>>>15 25 35 45 55 65 75
循环遍历列表的前三个元素,并将其全部删除;
for elem in list[:3]: list.remove(elem) >>>list = [40, 50, 60, 70]
通过 3 rd 循环 (索引 2) 到列表中的最后一个元素,并将它们附加到一个名为 new_list 的新列表中:
new_list = [] for elem in list[2:]: new_list.append(elem) print(“New List: {}”.format(new_list)) Output: New List: [30, 40, 50, 60, 70]
这样,任何方法或功能都可以应用于列表的成员以执行特定操作。您可以循环遍历列表的所有成员,也可以使用列表切片循环遍历列表的子集。
列表理解 Python
列表推导是 Python 函数,用于使用已创建的序列创建新序列(例如列表、字典等)。它们有助于减少更长的循环并使您的代码更易于阅读和维护。
例如;假设你想创建一个列表,其中包含从 1 到 9 的所有数字的平方:
list_of squares = [] for int in range(1, 10): square = int ** 2 list_of_squares.append(square) print(list_of_squares) List_of_squares using for loop: [1, 4, 9, 16, 25, 36, 49, 64, 81]
用列表推导做同样的事情:
list_of_squares_2 = [int**2 for int in range(1, 10)] print('List of squares using list comprehension: {}'.format(list_of_squares_2)) Output using list comprehension: [1, 4, 9, 16, 25, 36, 49, 64, 81]
如上所示,使用列表推导式编写代码比使用传统的 for 循环要短得多,而且速度也更快。这只是使用列表推导代替 for 循环的一个示例,但是可以在许多也可以使用 for 循环的地方复制和使用它。有时,使用 for 循环是更好的选择,尤其是在代码复杂的情况下,但在许多情况下,列表推导式将使您的编码更轻松、更快捷。
下面是一个表格,其中包含一些列表函数和方法,以及它们的描述。
内置函数
函数 | 描述 |
---|---|
圆() | 将作为参数传递的数字四舍五入到指定位数并返回浮点值 |
Min() | 返回给定列表的最小元素 |
Max() | 返回给定列表的最大元素 |
len() | 返回列表的长度 |
枚举() | 这个内置函数会生成一个可迭代项的值和索引,所以我们不需要手动计数 |
过滤器() | 测试列表的每个元素是否为真 |
Lambda | 一个表达式,可以出现在 def(用于创建函数)不是语法的地方,在列表文字或函数的调用参数中 |
地图() | 将给定函数应用于给定迭代的每个项目后返回结果列表 |
累积() | 将其参数中传递的特定函数应用于所有列表元素,返回一个包含中间结果的列表 |
Sum() | 返回列表中所有数字的总和 |
Cmp() | 这用于比较两个列表,如果第一个列表大于第二个列表,则返回 1。 |
插入 | 插入元素以在特定位置列出 |
列出方法
函数 | 描述 |
---|---|
追加() | 在列表末尾添加一个新项目 |
清除() | 从列表中删除所有项目 |
复制() | 返回原始列表的副本 |
扩展() | 将许多项目添加到列表的末尾 |
计数() | 返回列表中特定项目的出现次数 |
索引() | 返回列表中特定元素的索引 |
Pop() | 从列表中特定索引处删除项目(按位置删除) |
删除() | 从列表中删除指定项(按值删除) |
反向() | 反转列表元素顺序的就地反转方法 |
总结
- 列表就像它听起来的样子,一个包含不同 Python 对象的容器,可以是整数、单词、值等。
- Python 列表可以是同构的,这意味着它们可以包含相同类型的对象;或异构的,包含不同类型的对象。
- 要访问列表中的值,可以使用列表中对象的索引。
- 列表切片是拆分列表子集的方法,列表对象的索引也用于此。
- 删除列表元素的三种方法是:1)list.remove()、2)list.pop()、3)del操作符
- Append 方法用于追加元素。这会将元素添加到列表的末尾。
- Python程序的循环方式可以同时对一个数据列表的多个元素进行。
- 列表推导式是 Python 函数,用于使用已创建的序列创建新序列(例如列表、字典等)。
Python