在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个元组的列表转换为3个2个元组的列表,这样我就可以使用一个单一的查询,一次选择所有的值。
对不起,有歧义,希望这能让大家了解我想达到的目的。
谢谢!我有一个django查询values_list()的4个元组列表,即[('AAA', '123', 'xyz', '111', (BBB', '45', '45')]。
一个完整的函数应该是这样的。
l1=[('AAA', '123', 'xyz', '111'), ('BBB', '456', 'uvw', '222')]
def f(l):
l2=[]
for i in l1:
for j in range(len(i)-1):
l2.append((i[j], i[-1]))
return l2
l2=f(l1)
print(l2)
输出。
[('AAA', '111'), ('123', '111'), ('xyz', '111'), ('BBB', '222'), ('456', '222'), ('uvw', '222')]
然后你就可以把每个元素从列表中分离出来了 l2
以获得你的输出。
def f(l):
return [(i[0], i[-1]) for i in l]
谢谢你的帮助! 最终有效的解决方案是
def to2TupleList(self, tupleList, i):
twoTupleList = []
for t in tupleList:
twoTupleList.append((t[i], t[-1]))
return twoTupleList
然后,我把值列表和我想要的值的索引传给它,它就会像一个魔法一样工作!