我有一个这种形式的元组列表(由数据库查询生成):
[(280.73,), (281.359,), (280.630,)]
我想删除()和逗号以实现类似的功能,使其更加兼容以形成JSON。
[280.73,281.359,280.630]
最简单的方法是什么?
答案 0 :(得分:6)
给出list
单元素 tuple
(我们称之为l
(list
))。您希望将其展平为元素列表。
列表理解,提取每个元组的第一个元素将完成这项工作:
>>> 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]