我有一个元组列表,格式如下(由数据库查询生成):
[(280.73,), (281.359,), (280.630,)]
我希望将 () 和逗号删除,以达到以下效果,使其更易于转换为 JSON 格式。
[280.73,281.359,280.630]
什么是最简单的方法来完成这个?
我有一个元组列表,格式如下(由数据库查询生成):
[(280.73,), (281.359,), (280.630,)]
[280.73,281.359,280.630]
给定一个由单个元素的元组组成的列表(我们称其为l
(代表列表))。您想将其展开为元素列表。
可以使用列表推导式提取每个元组的第一个元素来完成任务:
>>> l = [(280.73,), (281.359,), (280.630,)]
>>> [t[0] for t in l]
[280.73000000000002, 281.35899999999998, 280.63]
>>>
cleaned = [i[0] for i in [(280.73,), (281.359,), (280.630,)]]
这些示例将适用于任意元素数量的元组。
>>> 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]
>>>
作为一种替代hack,你也可以这样做:
>>> 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]