如何将元组列表转换为字符串列表

时间:2016-05-23 00:04:52

标签: python-2.7

我有一个由此代码生成的元组列表。

ast = [3,1]
fgh = list(itertools.product(ast, repeat=3))

我想把它变成像这样的字符串列表

['3, 3, 3', '3, 3, 1', '3, 1, 3', '3, 1, 1', '1, 3, 3', '1, 3, 1', '1, 1, 3', '1, 1, 1']

我已经尝试了所有可以找到的东西,但我确定我错过了一些东西。

继续这样做。 TypeError:序列项0:期望字符串,找到int。当我尝试使用.join()时。

这段代码是我最接近的哈哈。

[('{} '*len(t)).format(*t).strip() for t in fgh]

我得到了这个

['3 3 3', '3 3 1', '3 1 3', '3 1 1', '1 3 3', '1 3 1', '1 1 3', '1 1 1']

谢谢,我真的很感激。

1 个答案:

答案 0 :(得分:2)

您可以使用str.join()代替,作为分隔符,并将map(str, item)转换为单个项目(str.join()负责的字符串)工作:

>>> import itertools
>>> ast = [3,1]
>>> fgh = itertools.product(ast, repeat=3)
>>> [", ".join(map(str, item)) for item in fgh]
['3, 3, 3', '3, 3, 1', '3, 1, 3', '3, 1, 1', '1, 3, 3', '1, 3, 1', '1, 1, 3', '1, 1, 1']