python实现合并多个list及合并多个django QuerySet的方法示例
作者:轻舞肥羊 发布时间:2023-11-25 06:43:13
本文实例讲述了python实现合并多个list及合并多个django QuerySet的方法。分享给大家供大家参考,具体如下:
在用python或者django写一些小工具应用的时候,有可能会遇到合并多个list到一个 list 的情况。单纯从技术角度来说,处理起来没什么难度,能想到的办法很多,但我觉得有一个很简单而且效率比较高的方法是我以前没注意到的。那就是利用 chain 方法来合并多个list. 同样也可以用来合并django 的 QuerySet.
1. python用chain 来合并多个list
chain 是用C实现的,自然性能上比较可靠。下面看下基本用法:
#coding:utf-8
from itertools import chain
a = [1,2,"aaa",{"name":"roy","age":100}]
b = [3,4]
c = [5,6]
#items = a + b + c
items = chain(a,b,c)
for item in items:
print item
输出结果如下:
1
2
aaa
{'age': 100, 'name': 'roy'}
3
4
5
6
由此可见可以很好的合并成功。
2. 在Django 中用 chain 合并多个QuerySet.
本身如果在Django中如果要合并同一个model的多个QuerySet 的话,是可以采用这种方式的.
#coding:utf-8
from itertools import chain
from yihaomen.common.models import Article
articles1 = Article.objects.order_by("autoid").filter(autoid__lt = 16).values('autoid','title')
articles2 = Article.objects.filter(autoid = 30).values('autoid','title')
articles = articles1 | articles2 # 注意这里采用的方式。如果 Model相同,而且没有用切片,并且字段一样时可以这样用
print articles1
print articles2
print articles
这样能很好的工作,但有些局限性,对于Django 来说很多情况下也够用了,合并到一个 QuerySet 中,然后返回到模板引擎中去处理。
当然也可以用chain 来实现,用chain 来实现会更方便,也没那么多限制条件,即使是不同的MODEL中查询出来的数据,都可以很方便的合并到一个 list 中去.
#coding:utf-8
from itertools import chain
from yihaomen.common.models import Article, UserID
articles1 = Article.objects.order_by("autoid").filter(autoid__lt = 16).values('autoid','title')
users = UserID.objects.all()
items = chain(articles1, users)
for item in items:
print item
这样做更方便,也很实用, 对于处理某些需要合并的list 然后再传输到某一个地方去的情况下,这样做很方便。
更多Python相关内容感兴趣的读者可查看本站专题:《Python列表(list)操作技巧总结》、《Python编码操作技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》
希望本文所述对大家Python程序设计有所帮助。
来源:http://www.yihaomen.com/article/python/533.htm


猜你喜欢
- 本文我们来看一下如何使用 Python 将 QQ 好友头像拼成“五一快乐”四个字。我们可以将整个实现过程分为两步:爬取 QQ 好友头像、利用
- 前言最近在试着研究飞浆平台的许多功能,看到了许多有意思的功能。其中可以将照片美化以及年龄调整这个功能让我想到了之前抖音的一个功能,所以特别感
- 这些常量在 PHP 的内核中定义。它包含 PHP、Zend 引擎和 SAPI 模
- Python HTTP客户端自定义Cookie实现实例几乎所有脚本语言都提供了方便的 HTTP 客户端处理的功能,Python 也不例外,使
- element-ui中el-select下拉框选项过多el-select中options数据超过3000条就会造成前端页面明显卡顿,本次我的
- 一、异步的“并行”同时处理,相互之间没啥依赖// 执行FN1返回一个promise实例,实例中管理了
- 一、何为交叉编译简单地说,就是在一个平台上生成另一个平台上的可执行代码。同一个体系结构可以运行不同的操作系统;同样,同一个操作系统也可以在不
- 本文实例为大家分享了python实现简单学生管理系统的具体代码,供大家参考,具体内容如下学生管理系统相信大家学各种语言的时候,练习总是会写各
- Explain命令在解决数据库性能上是第一推荐使用命令,大部分的性能问题可以通过此命令来简单的解决,Explain可以用来查看SQL语句的执
- 近来在训练检测网络的时候会出现loss为nan的情况,需要中断重新训练,会很麻烦。因而选择使用PyTorch提供的梯度裁剪库来对模型训练过程
- 1 unittest框架unittest 是python 的单元测试框架,它主要有以下作用:提供用例组织与执行:当你的测试用例只有几条时,可
- NTP(Network Time Protocol)是由美国德拉瓦大学的David L. Mills教授于1985年提出,设计用来在Inte
- 本文实例讲述了Python简单删除列表中相同元素的方法。分享给大家供大家参考,具体如下:去除列表中重复的元素,非常简单,直接上代码:a =
- 本文实例讲述了python中迭代器(iterator)用法。分享给大家供大家参考。具体如下:#-----------------------
- Python转json时出现中文乱码设置报文头# -*- coding:gbk -*- 连接数据库设置编码mysql = MyS
- 我就废话不多说了,大家还是直接看代码吧~// 窗体透明,控件不透明self.setWindowFlags(Qt.FramelessWindo
- 今天从网上学习了有关SQL注入的基本技能。SQL注入的重点就是构造SQL语句,只有灵活的运用SQL 语句才能构造出牛比的注入字符串。学完之后
- 前言:集合这种数据类型和我们数学中所学的集合很是相似,数学中堆积和的操作也有交集,并集和差集操作,python集合也是一样。一、交集操作1.
- 数学函数 1.绝对值 S:select abs(-1) value O:select abs(-1) value from dual 2.取
- golang用来序列化的模块有很多,我们来介绍3个。json首先登场的是json,这个几乎毋庸置疑。序列化package mainimpor