我有一个由此代码生成的元组列表。
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']
谢谢,我真的很感激。
答案 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']