首页 > 解决方案 > Python 将 4 个元组的列表转换为三个 2 个元组,加入元组中的最后一个元素

问题描述

从 django 查询 values_list() 我有一个包含 4 个元组的列表,即

[('AAA', '123', 'xyz', '111'), ('BBB', '456', 'uvw', '222'), ...]

我想要的是两个元组的多个列表,加入每个元组的最后一个元素,即

[('AAA', '111'), ('BBB', '222'), ...]

[('123', '111'), ('456', '222'), ...]

[('xyz', '111'), ('uvw', '222'), ...]

我通过在 django 中执行多个查询并获取第一列和第二列的值列表来使其工作

(myQuery).values_list('col1', 'idCol')

(myQuery).values_list('col2', 'idCol')

(myQuery).values_list('col3', 'idCol')

但是,此解决方案执行多个查询,我认为这对性能没有那么好。

所以我想知道是否有一种方法可以执行我上面显示的操作,将 4 个元组的列表转换为 2 个元组的三个列表,以便我可以使用单个查询,并一次选择所有值

很抱歉模棱两可,希望这能让我知道我想要完成什么,

谢谢!

标签: python-3.xtuplesdjango-querysetiterable-unpacking

解决方案


def f(l):
    return [(i[0], i[-1]) for i in l]

推荐阅读