Python 将 4 元组的列表转换为三个 2 元组,连接到元组中的最后一个元素
Python convert a list of 4 tuple into three 2 tuples, joined on the last element in the tuple
来自 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 个元组的列表,以便我可以使用单个查询,并且 select 所有一次的值
抱歉含糊不清,希望这能让我了解我想要完成的事情,
谢谢!
def f(l):
return [(i[0], i[-1]) for i in l]
完整的函数如下所示,
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 to2TupleList(self, tupleList, i):
twoTupleList = []
for t in tupleList:
twoTupleList.append((t[i], t[-1]))
return twoTupleList
然后我传递值列表和我想要的值的索引,它就像一个魅力!
来自 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 个元组的列表,以便我可以使用单个查询,并且 select 所有一次的值
抱歉含糊不清,希望这能让我了解我想要完成的事情,
谢谢!
def f(l):
return [(i[0], i[-1]) for i in l]
完整的函数如下所示,
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 to2TupleList(self, tupleList, i):
twoTupleList = []
for t in tupleList:
twoTupleList.append((t[i], t[-1]))
return twoTupleList
然后我传递值列表和我想要的值的索引,它就像一个魅力!