Python
容器資料型態
list
连接,结合

在 Python 中组合列表或连接元素:解释和例子

这篇文章包括以下关于在 Python 中组合列表的主题。

  • join() 函数组合列表中的元素 (对字符串、数字)
  • join()函数中使用分隔符 (引号", ', 逗号,, 空间``)
  • 将列表合并成一个
  • 合并没有重复的列表
  • 通过列表索引进行合并(使用map())。

主要地,我们将看看如何在一个列表中合并元素,以及如何合并多个列表本身。

💡

关于如何向列表中添加新元素,请参见此帖

1. 用join()将列表中的元素合并为字符串

在 Python 中,join方法提供了用字符串连接列表中的元素的能力。 具体来说,它将列表中的每个元素连接成一个字符串,用指定的分隔符分开。

用一个简单的例子来说明,假设我们有下面的列表:

fruits = ['apple', 'banana', 'orange']

我们想把这个列表中的元素合并成一个字符串,用逗号分隔。要做到这一点,我们可以使用join()方法:

result = ', '.join(fruits)
print(result)
 
# Output: apple, banana, orange

这里,', '被用作分隔符,join()方法将列表fruits中的元素连接成一个字符串,用逗号和空格分隔。

注意,要使用join方法,所有要连接的列表元素必须是字符串;否则,在使用该方法之前,每个元素都必须转换为字符串。

2. 合并数字列表

如何组合一个列表中的数字取决于你想要的结果。

如果你想把每个数字合并成一个字符串,你可以使用join()方法。 如果你想得到列表中每个数字的总和,你可以使用sum()reduce()函数。

让我们来看看每一个。

2.1. 合并成一个字符串

正如我们在第1节中看到的,为了使用join()方法,我们需要将列表中的每个元素转换成字符串。 在下面的例子中,我们将使用生成器语法将所有标量元素转换为字符串。

numbers = [1, 2, 3, 4, 5]
combined = ''.join(str(num) for num in numbers)
 
print(combined)
 
# Output: 12345

我们使用str(num)将每个元素转换成字符串,然后用join()方法将它们连接起来,使数字变成一个字符串。

2.2. 寻找总和

有很多方法可以对一个列表中的数字进行求和。让我们来看看两个最常见的方法。

首先,你可以简单地使用Python内置函数sum()对它们求和。

numbers = [1, 2, 3, 4, 5]
sum_of_numbers = sum(numbers)
 
print(sum_of_numbers)
 
# Output: 15

第二种方法是使用reduce()函数编写函数式的代码。 reduce()函数是由functools模块提供的,它提供了重复组合一个列表的元素以产生一个结果的能力。 你可以用它来将一个列表中的数字组合成一个单一的数字。

让我们通过一个例子来看看它。

from functools import reduce
 
numbers = [1, 2, 3, 4, 5]
reduce(lambda x,y: x + y, numbers)
 
print(combined)
 
# Output: 15

你也可以使用reduce()函数编写一个新的算法,像这样

from functools import reduce
 
numbers = [1, 2, 3, 4, 5]
combined = reduce(lambda x, y: x * 10 + y, numbers)
 
print(combined)
 
# Output: 12345

我们使用函数lambda x, y: x * 10 + y来迭代地将这些元素组合成一个数字。 每个元素都被乘以10,然后与下一个元素相加,形成结果12345

3. 合并列表中的列表

有许多方法可以将两个列表或列表中的列表结合起来。下面是其中的几种。

3.1. 使用 + 操作符

结合两个列表的最简单的方法是使用 + 操作符。

list1 = [1, 2, 3]
list2 = [4, 5, 6]
combined = list1 + list2
 
print(combined)
 
# Output: [1, 2, 3, 4, 5, 6]

这个方法并不改变原来的列表,而是创建一个新的组合列表。

3.2. 使用 extend() 方法

extend()方法是一种将另一个列表中的项目添加到一个列表中的方法。

list1 = [1, 2, 3]
list2 = [4, 5, 6]
list1.extend(list2)
 
print(list1)
 
# Output: [1, 2, 3, 4, 5, 6]

extend()方法允许你从list2添加元素到list1。这个方法修改了list1,并没有创建一个新的列表。

3.3. 使用列表连接操作符

你也可以使用列表连接操作符 * 来合并两个列表。

list1 = [1, 2, 3]
list2 = [4, 5, 6]
combined = [*list1, *list2]
 
print(combined)
 
# Output: [1, 2, 3, 4, 5, 6]

这个方法也不改变原来的列表,它创建了一个新的组合列表。

4. 合并列表时删除重复的内容

在合并两个列表时,也有几种方法可以删除重复的内容。下面是几个例子

4.1. 使用集合

集合的特点是不允许有重复的项目。 你可以利用这一点,将两个列表转换为一个集合,然后再转换为一个列表,得到一个重复的列表。

list1 = [1, 2, 3, 4, 5]
list2 = [4, 5, 6, 7, 8]
combined = list(set(list1 + list2))
 
print(combined)
 
# Output: [1, 2, 3, 4, 5, 6, 7, 8]

首先,我们使用+操作符将list1list2组合起来。 然后我们使用set()函数将合并的列表转换为一个集合,再使用list()函数将其转换成一个列表。 这样我们就得到了一个去除重复的列表。

4.2. 如何使用列表压缩

你也可以使用列表压缩来删除重复的内容。要做到这一点,我们将两个列表合并,并添加一个条件来过滤掉重复的内容。

list1 = [1, 2, 3, 4, 5]
list2 = [4, 5, 6, 7, 8]
 
combined = [x for x in list1 + list2 if x not in list1 or x not in list2]
 
print(combined)
 
# Output: [1, 2, 3, 6, 7, 8]

在用 +操作符组合了list1list2之后、 使用列表压缩来创建一个列表,其中每个项目只包含那些不在 list1 和不在 list2 中的项目。这将给你一个没有重复的列表。

5. 通过索引合并列表

下面是如何使用map()函数和zip函数来组合两个或多个列表。

map()函数接收多个列表并应用一个函数来组合每个列表的元素,得到一个新的列表。 zip()函数将具有相同索引的元素捆绑成一个元组。

这两个函数一起使用,产生的结果就像下面的例子。

list1 = [1, 2, 3]
list2 = [4, 5, 6]
list3 = [7, 8, 9]
 
combined = list(map(list, zip(list1, list2, list3)))
 
print(combined)
 
# Output: [[1, 4, 7], [2, 5, 8], [3, 6, 9]]

zip(list1, list2, list3)将每个列表中相同索引的元素打包成一个元组。 map(list, ...)将这些元组转换为列表。 所以变量combined存储了list1, list2{;Py}list3的具有相同索引元素的子列表。

总结

在这篇文章中,我们已经回答了你关于在Python中组合列表的许多问题。 我们希望当你需要组合一个列表的元素时,或者当你需要组合列表本身时,你会发现它很有用。

copyright for 在 Python 中组合列表或连接元素:解释和例子

© 2023 All rights reserved.