从列表中的元组中剥离字符

时间:2011-10-09 03:36:32

标签: python json list tuples

我有一个这种形式的元组列表(由数据库查询生成):

[(280.73,), (281.359,), (280.630,)]

我想删除()和逗号以实现类似的功能,使其更加兼容以形成JSON。

[280.73,281.359,280.630]

最简单的方法是什么?

4 个答案:

答案 0 :(得分:6)

给出list 单元素 tuple(我们称之为llist))。您希望将其展平为元素列表。

列表理解,提取每个元组的第一个元素将完成这项工作:

>>> l = [(280.73,), (281.359,), (280.630,)]
>>> [t[0] for t in l]
[280.73000000000002, 281.35899999999998, 280.63]
>>> 

答案 1 :(得分:5)

最简单的可能是通过列表理解:

cleaned = [i[0] for i in [(280.73,), (281.359,), (280.630,)]]

答案 2 :(得分:0)

这些示例将使用任意元素数量的元组。

>>> l = [(280.73,), (281.359,), (280.630,)]
>>> [ v for b in l for v in b ]
[280.73, 281.359, 280.63]
>>> from itertools import chain
>>> list(chain(*l))
[280.73, 281.359, 280.63]
>>> 

答案 3 :(得分:0)

作为替代黑客,你也可以这样做:

>>> stuff = [(280.73,), (281.359,), (280.630,)]
>>> sum(stuff, ())
(280.73, 281.359, 280.63)

要将其转换为列表,请将其传递到list函数:

>>> stuff = [(280.73,), (281.359,), (280.630,)]
>>> list(sum(stuff, ()))
[280.73, 281.359, 280.63]