我使用生成器来创建 s
s= generator(n)
对于范围(n)内的n,生成器产生(a,b)。其中 a=[w,x] 和 b=[y,z]
使用
打印for i in s:
print i
返回:
([0.27704232355167768, 0.44459304959240675], [0.4387731877846518, 0.38108111684466683])
([0.27704232355167768, 0.44459304959240675], [0.6362447250743466, 0.72047209074359853])
([0.27704232355167768, 0.44459304959240675], [0.65419386891877318, 0.025362727486327286])
([0.27704232355167768, 0.44459304959240675], [0.039966264334369672, 0.9662795347591735])
不过我愿意
0.27704232355167768 0.44459304959240675 0.4387731877846518 0.38108111684466683
0.27704232355167768 0.44459304959240675 0.6362447250743466 0.72047209074359853
0.27704232355167768 0.44459304959240675 0.65419386891877318 0.025362727486327286
0.27704232355167768 0.44459304959240675 0.039966264334369672 0.9662795347591735
我尝试了以下想法的多种变体
print '\n'.join('\t'.join(x) for x in s)
但无济于事,并且倾向于以相同的格式返回 s。谁能帮我解决这个问题吗?
最佳答案
from itertools import chain
'\n'.join('\t'.join(map(str,tuple(chain(*i)))) for i in s)
chain
展平每一行,因此您可以使用制表符连接所有元素,然后使用换行符连接行。
关于python - 将生成器对象转换为制表符分隔的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10064374/