Django-如何向values_list中的每个元组添加值

时间:2018-10-03 01:19:03

标签: python django python-3.x

我有一个values_list

mylist = Region.objects.values_list('region_id','region').order_by('region')

for x in mylist: print(x)

返回

(2, 'Africa')
(9, 'Antarctic')
(3, 'Asia Temperate')
...

我想在每个元组中添加第三个元素以获得

(2, 'Africa','x')
(9, 'Antarctic','y')
(3, 'Asia Temperate',x')

我尝试过:

for a in mylist:
    if some condition:
        a + ('x',)
    else:
        a + ('y',)

但它不起作用。

2 个答案:

答案 0 :(得分:1)

您必须将其添加回新列表,例如:

new_list=[]
for a in my_list:
    if some condition:
        new_list.append(a+('x',))
    else:
        new_list.append(a+('y',))

或者最好是单线列表理解:

new_list=[i+('x',) if some condition else i+('y',) for i in my_list]

两种情况下new_list都是理想的结果。

答案 1 :(得分:0)

您必须创建一个新的元组并使用可迭代的方式对其进行初始化,如下所示:

for a in mylist:
    if some condition:
        b = a + ('x',)
    else:
        b = a + ('y',)
    do something with b

或类似的东西。