在 Python 中连接字符串列表

Bishwas Ojha 2023年10月10日
  1. 在 Python 中使用 join() 方法将列表转换为单个字符串
  2. 在 Python 中使用 map() 函数将任何数据类型的列表转换为单个字符串
  3. 在 Python 中使用 for 循环将列表转换为单个字符串
在 Python 中连接字符串列表

本文将介绍将 Python 列表中的项目连接为单个字符串的方法。

在 Python 中使用 join() 方法将列表转换为单个字符串

join() 方法返回一个字符串,其中字符串分隔符连接元素序列。它以可迭代数据作为参数。

这种方法可以形象化如下:

"separator".join(["List", "of", " string"])

我们从 separator 调用 join() 方法并将字符串列表作为参数传递。它根据所使用的分隔符返回字符串。如果在分隔符中使用换行符\n,它将为每个列表元素插入一个新行。如果在分隔符中使用逗号 ,,它只会生成一个逗号分隔的字符串。join() 方法返回一个可迭代的字符串。如果任何非字符串值是可迭代的,包括字节对象,则将引发 TypeError。称为生成器表达式的表达式用于让所有数据类型都适用于它。

例如,创建一个变量 words_list 并在其上写入一些列表元素。它们是 Joey, doesnot, sharefood。使用分隔符 " " 调用 join() 方法。使用 words_list 变量作为函数中的参数。对整个表达式使用 print() 函数。

在下面的示例中,join() 函数将 words_list 变量作为参数。然后,在每个列表元素之间插入分隔符 " "。最后,作为输出,它返回字符串 Joey does not share food

示例代码:

# python 3.x
words_list = ["Joey", "doesnot", "share", "food"]
print(" ".join(words_list))

输出 :

Joey doesnot share food

在 Python 中使用 map() 函数将任何数据类型的列表转换为单个字符串

map() 函数将作为参数传递给可迭代对象(如列表和元组)的特定函数应用。该函数被传递而不调用它。这意味着函数中没有括号。看起来 map() 函数是将 Python 列表转换为字符串的更通用的方法。

这可以可视化为:

data: d1, d2, d3, .... dn
function: f
map(function, data):
    returns iterator over f(d1), f(d2), f(d3), .... f(dn)

例如,创建一个变量 word_list 并将一些列表项存储到其中。它们是 Givemeacallat979797。然后,编写一个 map() 函数并将一个函数 str 和一个变量 words_list 作为参数传递给 map() 函数。编写一个 join() 函数并将 map 对象作为其参数。使用空字符串" " 调用 join() 函数。使用 print() 函数打印表达式。

str 函数被调用到所有列表元素,因此所有元素都被转换为字符串类型。然后,在每个 Map 对象之间插入空格" ",并返回输出部分中显示的字符串。

# python 3.x
words_list = ["Give", "me", "a", "call", "at", 979797]
print(" ".join(map(str, words_list)))

输出:

Give me a call at 979797

在 Python 中使用 for 循环将列表转换为单个字符串

我们可以使用 for 循环从列表中获取单个字符串。在此方法中,我们遍历所有值,然后将每个值附加到一个空字符串。这是一个简单的过程,但需要更多的内存。我们在迭代器旁边添加一个分隔符以附加一个空字符串。

例如,创建一个变量 words_list 并存储列表项。接下来,创建一个空字符串 sentence。使用 for 循环并使用变量 word 作为迭代器。对 word 使用 str() 方法并将其添加到变量 sentence。然后,将 "." 作为字符串添加到函数中。之后,将表达式分配给变量 sentence。在循环外打印变量。

在这个例子中,python 列表 words_list 包含一个元素列表。空字符串变量 sentence 用于在循环中附加列表元素。在循环内部,str() 方法将元素类型转换为字符串,而 "." 充当附加到空字符串 sentence 的每个可迭代项之间的分隔符。

示例代码:

# python 3.x
words_list = ["Joey", "doesnot", "share", "food"]
sentence = ""
for word in words_list:
    sentence += str(word) + "."
print(sentence)

输出:

Joey.doesnot.share.food

相关文章 - Python String