用列表推导替换for循环

时间:2012-01-22 21:59:41

标签: python string list python-3.x list-comprehension

string = ""
for e in list:
    string += e

这个for循环如何表示为列表推导,以便输出一个字符串?

3 个答案:

答案 0 :(得分:13)

您想要的首选成语是:

string = ''.join(l)

解释:join()是一个字符串方法,它获取 iterable 并返回一个字符串,其中iterable中的所有元素由调用它的字符串分隔。因此,例如,', '.join(['a', 'b'])只会返回字符串'a, b'。由于列表是可迭代的,我们可以使用分隔符join(空字符串)将它们传递给''以连接列表中的所有项目。

注意:由于list是Python中列表的内置类型名称,因此最好不要通过命名变量“list”来掩盖它。因此,我在示例l中命名了列表。

答案 1 :(得分:3)

列表推导返回列表而不是字符串。使用join()

string = "".join(lst)

要更全面地了解联接方法,请参阅:http://docs.python.org/library/stdtypes.html#str.join

另外,请注意将变量命名为list,因为它是一种可识别的类型,并会导致线路故障。

答案 2 :(得分:1)

不是列表理解,但仍然很短,希望有效。

string = ''
list = ['a',' f' , 'f' ,'daf','fd']

x =reduce(lambda x,y: x + y, list, string)
print x