是否可以从每个列表中获取每个单独的字符串,然后将其组合为一个字符串,然后获得一个字符串列表?而不是列表中的字符串列表?
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
为什么这只会串联列表中的最后一个元素?
答案 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']