python:串联列表中的列表字符串

时间:2019-03-04 17:46:41

标签: python list dictionary

是否可以从每个列表中获取每个单独的字符串,然后将其组合为一个字符串,然后获得一个字符串列表?而不是列表中的字符串列表?

names = ['red', 'barn'], ['barn'], ['front', 'porch'], ['white', 'farm', 'house']]

下面的预期输出:

names = ['red barn', 'barn', 'front porch', 'white farm house']

这是我尝试过的

for name in names: names = " ".join(name) print(names) 此代码的输出是

white farm house

为什么这只会串联列表中的最后一个元素?

1 个答案:

答案 0 :(得分:1)

您要在每个循环中覆盖名称,因此名称的最后一个值是“白色农舍”。

尝试以下方法:

l_out = [' '.join(x) for x in names]
print(l_out)

输出:

['red barn', 'barn', 'front porch', 'white farm house']

或者您可以按照尝试的方式进行操作:

l_out = []
for name in names:
    l_out.append(' '.join(name))
print(l_out)

输出:

['red barn', 'barn', 'front porch', 'white farm house']