我有多个元组,我以dict的形式生成: 数字是根据几个变量的总和计算的,它是一个整数,元组中的字符串是文档的名称。
(4.3434, 'doc1')
(139.324, 'doc2')
(0, 'doc3')
我想要的是:
[(139.324, doc2), (4.3434, 'doc1'), (0, 'doc3')]
但是我该怎么做?一个简单的列表理解,如
[x for x in tuples]
给出
[(4.3434, 'doc1')]
[(139.324, 'doc2')]
[(0, 'doc3')]
是否有可能将其放入单个列表中,或者我应该以某种方式将其放入列表列表并尝试按此方式排序?谢谢你的帮助
答案 0 :(得分:0)
如果您的tuples
变量已经是元组列表,我恐怕您已经拥有了所需的内容。
如果你将(1.23,'doc1')
之类的元组提供给任何python数组,它只需要你想要的形状。
tup_les=[]
tup_les.append((1.23,'doc1'))
tup_les.append((2.32,'doc2'))
tup_les.append((3.45,'doc3'))
>>> tup_les
>>> [(1.23, 'doc1'), (2.34, 'doc2'), (3.45, 'doc3')]
否则,您可以通过更好地解释您尝试实现的目标来编辑答案。
答案 1 :(得分:-1)
使用itertools.chain
:
import itertools
myList = itertools.chain(*tuples)
示例:
import itertools
tuples = [[(1,2,3)] for _ in xrange(10)]
tuples
[[(1, 2, 3)], [(1, 2, 3)], [(1, 2, 3)], [(1, 2, 3)], [(1, 2, 3)], [(1, 2, 3)], [(1, 2, 3)], [(1, 2, 3)], [(1, 2, 3)], [(1, 2, 3)]]
myList = list(itertools.chain(*tuples))
myList
[(1, 2, 3), (1, 2, 3), (1, 2, 3), (1, 2, 3), (1, 2, 3), (1, 2, 3), (1, 2, 3), (1, 2, 3), (1, 2, 3), (1, 2, 3)]