You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Django查询得到的[('BAJRA',), ('BARLEY',)]转为[BAJRA,BARLEY]的高效方法

最优实现方案

你不需要自己写嵌套循环做转换,Django ORM的values_list方法自带flat=True参数,开启后会直接返回一维的可迭代对象,外层套个list()就能拿到你要的结果:

foodlist2 = list(Foods.objects.values_list('Food', flat=True))

这个方案的效率远高于你现有的实现:不需要在应用层额外遍历嵌套元组,结构转换直接在ORM查询层面完成,同时代码也更简洁易读。

可选替代方案

如果有特殊场景不能使用flat参数,也可以用列表推导式替代原来的两层循环+append的写法,执行效率也会更高:

foodval = Foods.objects.values_list('Food')
foodlist2 = [food for tpl in foodval for food in tpl]

内容的提问来源于stack exchange,提问作者Jashan Dhiman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 15:45:03