python实现合并多个list及合并多个django QuerySet的方法示例


Posted in Python onJune 11, 2019

本文实例讲述了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程序设计有所帮助。

Python 相关文章推荐
Python异常处理总结
Aug 15 Python
python命令行参数解析OptionParser类用法实例
Oct 09 Python
python通过floor函数舍弃小数位的方法
Mar 17 Python
浅析Python中的join()方法的使用
May 19 Python
Python3中的json模块使用详解
May 05 Python
详解python之协程gevent模块
Jun 14 Python
OpenCV+python手势识别框架和实例讲解
Aug 03 Python
对pandas里的loc并列条件索引的实例讲解
Nov 15 Python
利用Python实现微信找房机器人实例教程
Mar 10 Python
django 通过URL访问上传的文件方法
Jul 28 Python
Python使用selenium + headless chrome获取网页内容的方法示例
Oct 16 Python
Pycharm激活码激活两种快速方式(附最新激活码和插件)
Mar 12 Python
Python GUI编程 文本弹窗的实例
Jun 11 #Python
Python API 自动化实战详解(纯代码)
Jun 11 #Python
Python-while 计算100以内奇数和的方法
Jun 11 #Python
python操作文件的参数整理
Jun 11 #Python
python语言基本语句用法总结
Jun 11 #Python
python实现对象列表根据某个属性排序的方法详解
Jun 11 #Python
Python实现计算文件MD5和SHA1的方法示例
Jun 11 #Python
You might like
Function eregi is deprecated (解决方法)
2013/06/21 PHP
PHP实现的MongoDB数据库操作类分享
2014/05/12 PHP
codeigniter数据库操作函数汇总
2014/06/12 PHP
PHP中时间加减函数strtotime用法分析
2017/04/26 PHP
解析 thinkphp 框架中的部分方法
2017/05/07 PHP
给Function做的OOP扩展
2009/05/07 Javascript
JS实现文字链接感应鼠标淡入淡出改变颜色的方法
2015/02/26 Javascript
javascript事件冒泡实例分析
2015/05/13 Javascript
jQuery多个版本和其他js库冲突的解决方法
2016/08/11 Javascript
KVM虚拟化技术之使用Qemu-kvm创建和管理虚拟机的方法
2016/10/05 Javascript
es6数值的扩展方法
2019/03/11 Javascript
搭建一个Koa后端项目脚手架的方法步骤
2019/05/30 Javascript
es6中Promise 对象基本功能与用法实例分析
2020/02/23 Javascript
详解vue-template-admin三级路由无法缓存的解决方案
2020/03/10 Javascript
浅谈vue-props的default写不写有什么区别
2020/08/09 Javascript
python Django连接MySQL数据库做增删改查
2013/11/07 Python
python字典多条件排序方法实例
2014/06/30 Python
Sanic框架应用部署方法详解
2018/07/18 Python
python3学生名片管理v2.0版
2018/11/29 Python
Python实现的线性回归算法示例【附csv文件下载】
2018/12/29 Python
Python中使用遍历在列表中添加字典遇到的坑
2019/02/27 Python
python+os根据文件名自动生成文本
2019/03/21 Python
python登录WeChat 实现自动回复实例详解
2019/05/28 Python
python二维键值数组生成转json的例子
2019/12/06 Python
python输出pdf文档的实例
2020/02/13 Python
Python基于pandas爬取网页表格数据
2020/05/11 Python
Python3+RIDE+RobotFramework自动化测试框架搭建过程详解
2020/09/23 Python
python 两种方法删除空文件夹
2020/09/29 Python
国际花店:Pickup Flowers
2020/04/10 全球购物
会议邀请书范文
2014/02/02 职场文书
国庆节演讲稿
2014/05/27 职场文书
商业街策划方案
2014/05/31 职场文书
党员演讲稿
2014/09/04 职场文书
2014年学生会个人工作总结
2014/11/07 职场文书
银行自荐信范文
2015/03/25 职场文书
python DataFrame中stack()方法、unstack()方法和pivot()方法浅析
2022/04/06 Python