在 Python 中连接字符串列表
-
在 Python 中使用
join()
方法将列表转换为单个字符串 -
在 Python 中使用
map()
函数将任何数据类型的列表转换为单个字符串 -
在 Python 中使用
for
循环将列表转换为单个字符串
本文将介绍将 Python 列表中的项目连接为单个字符串的方法。
在 Python 中使用 join()
方法将列表转换为单个字符串
join()
方法返回一个字符串,其中字符串分隔符连接元素序列。它以可迭代数据作为参数。
这种方法可以形象化如下:
"separator".join(["List", "of", " string"])
我们从 separator
调用 join()
方法并将字符串列表作为参数传递。它根据所使用的分隔符返回字符串。如果在分隔符中使用换行符\n
,它将为每个列表元素插入一个新行。如果在分隔符中使用逗号 ,
,它只会生成一个逗号分隔的字符串。join()
方法返回一个可迭代的字符串。如果任何非字符串值是可迭代的,包括字节对象,则将引发 TypeError
。称为生成器表达式的表达式用于让所有数据类型都适用于它。
例如,创建一个变量 words_list
并在其上写入一些列表元素。它们是 Joey
, doesnot
, share
和 food
。使用分隔符 " "
调用 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
并将一些列表项存储到其中。它们是 Give
、me
、a
、call
、at
和 979797
。然后,编写一个 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