我有一个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',)
但它不起作用。
答案 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
或类似的东西。