在Python

时间:2017-05-19 10:28:55

标签: python list tuples

我有多个元组,我以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')]

是否有可能将其放入单个列表中,或者我应该以某种方式将其放入列表列表并尝试按此方式排序?谢谢你的帮助

2 个答案:

答案 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)]