如何在Python中用join()将列表转换为字符串

613 阅读3分钟

数据有许多形状和形式--最常见的数据结构之一是列表/数组字符串本质上是字母数字字符的序列。这两者之间的平行关系是显而易见的,而且我们经常在一个和另一个之间进行转换。

在本指南中,我们将看看如何在 Python 中把列表转换成/收集成字符串。

在 Python 中用 join() 将列表转换为字符串

你要使用的一般方法是join() 函数,有几个选项可以选择。该函数是在一个表示分隔符的字符串上调用的--这个分隔符将被添加到所有连接的项目之间。

**注意:**尽管你可以预先定义一个分隔符,但它通常只是被实例化为一个空字符串,然后调用join() 函数。

让我们看一下我们想连接的字符列表。

base_list = ['M', 'K', 'V', 'N', 'L', 'I', 'L', 'F', 'S', 'L', 'L', 'V']

将这些字符连接成一个字符串的最简单方法是将列表传给join() 函数。

string = "".join(base_list)
print(string)

这样做的结果是

MKVNLILFSLLV

我们已经连接了几个字符,表示存在于大肠杆菌中的蛋白质序列开始处的氨基酸!

这些元素中的每一个都是str ,所以将这些元素自然地放入字符串中是没有问题的。虽然,有时候,你可能想把某个元素转换成不同的类型。

此外,如果你使用不同的分隔符,你也可以得到不同的表示。

string = ", ".join(base_list)

这就导致了

M, K, V, N, L, I, L, F, S, L, L, V

用List Comprehension将Python中的List转换成字符串

**注意:**Python 隐含地转换了它可以转换的任何数据类型,所以在大多数情况下你不需要明确地转换它们。

如果你必须转换元素,你可以简单地使用一个列表理解法。

string = "".join(str(element) for element in base_list)

现在列表中的每个元素都被传递到str() 函数中,该函数将它们转换为一个字符串。你可以用任何其他函数来代替它,包括自定义函数。例如c,让我们创建一个函数,在 "万一 "某个元素没有被大写的情况下,将每个元素大写。

base_list = ['m', 'K', 'V', 'N', 'L', 'I', 'L', 'f', 'S', 'L', 'L', 'V']

def capitalize_char(char):
    return char.upper()

string = "".join(capitalize_char(element) for element in base_list)

print(string)

m 和 ,被翻成小写,这不应该发生。我们把 函数传入列表理解中,返回我们传入的每个元素的大写版本。这就导致了。f capitalize_char()

MKVNLILFSLLV

在 Python 中用 map() 将列表转换为字符串

最后,对于通过函数传递元素的一种更干净、更简单的方法--我们可以使用map() 。一般来说,map() 函数用于将一个集合的值映射到另一个集合,通常使用不同的(甚至是缩小的)格式。

例如,你可以将每个字符映射到另一个布尔列表,其中每个布尔值代表该字符是否为大写字母。

当然,你也可以一直使用map() 函数做1对1的映射,嗯,就是把一个字符串映射到一个字符串,把它们连成一个。

base_list = ['M', 'K', 'V', 'N', 'L', 'I', 'L', 'F', 'S', 'L', 'L', 'V']

string = "".join(map(str, base_list))

print(string)

这样做的结果是

MKVNLILFSLLV

总结

在这个简短的指南中,我们看了如何在 Python 中把一个列表转换成一个字符串,把元素收集成一个单一的部分。

字符串本身就是字符列表,它们的行为方式基本相同,但也可以作为单个元素来处理。

你已经学会了如何以普通的形式使用join() 函数,以及如何用列表理解、自定义方法和map() 函数来使用它!