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 相关文章推荐
Windows下安装python2.7及科学计算套装
Mar 05 Python
对于Python的Django框架使用的一些实用建议
Apr 03 Python
python使用socket创建tcp服务器和客户端
Apr 12 Python
浅谈Django中的数据库模型类-models.py(一对一的关系)
May 30 Python
python numpy数组的索引和切片的操作方法
Oct 20 Python
python3使用flask编写注册post接口的方法
Dec 28 Python
解决pandas展示数据输出时列名不能对齐的问题
Nov 18 Python
解决os.path.isdir() 判断文件夹却返回false的问题
Nov 29 Python
基于Python快速处理PDF表格数据
Jun 03 Python
使用pytorch 筛选出一定范围的值
Jun 28 Python
python实现视频压缩功能
Dec 18 Python
用python批量移动文件
Jan 14 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
Look And Say 序列php实现代码
2011/05/22 PHP
Thinkphp模板中使用自定义函数的方法
2012/09/23 PHP
PHP中判断变量为空的几种方法分享
2013/08/26 PHP
php上传图片之时间戳命名(保存路径)
2014/08/15 PHP
浅谈PHP安全防护之Web攻击
2017/01/03 PHP
PHP 观察者模式深入理解与应用分析
2019/09/25 PHP
用JavaScript仿PS里的羽化效果代码
2011/12/20 Javascript
JavaScript原生对象之Number对象的属性和方法详解
2015/03/13 Javascript
jquery.form.js实现将form提交转为ajax方式提交的方法
2015/04/07 Javascript
javascript委托(Delegate)blur和focus用法实例分析
2015/05/26 Javascript
js代码实现无缝滚动(文字和图片)
2015/08/20 Javascript
JS模拟酷狗音乐播放器收缩折叠关闭效果代码
2015/10/29 Javascript
JavaScript的Backbone.js框架环境搭建及Hellow world示例
2016/05/07 Javascript
完美JQuery图片切换效果的简单实现
2016/07/21 Javascript
简单理解vue中track-by属性
2016/10/26 Javascript
JavaScript实现大图轮播效果
2017/01/11 Javascript
详解React中的组件通信问题
2017/07/31 Javascript
JavaScript数据结构之单链表和循环链表
2017/11/28 Javascript
原生js检测页面加载完毕的实例
2018/09/11 Javascript
详解vue中v-model和v-bind绑定数据的异同
2020/08/10 Javascript
微信小程序自定义底部弹出框功能
2020/11/18 Javascript
python MysqlDb模块安装及其使用详解
2018/02/23 Python
python图书管理系统
2020/04/05 Python
Python 面试中 8 个必考问题
2018/11/16 Python
Python从函数参数类型引出元组实例分析
2019/05/28 Python
python 成功引入包但无法正常调用的解决
2020/03/09 Python
解决windows下python3使用multiprocessing.Pool出现的问题
2020/04/08 Python
基于Modernizr 让网站进行优雅降级的分析
2013/04/21 HTML / CSS
HTML5 Canvas实现平移/放缩/旋转deom示例(附截图)
2013/07/04 HTML / CSS
荷兰音乐会和音乐剧门票订购网站:Topticketshop
2019/08/27 全球购物
英国婚礼商城:Wedding Mall
2019/11/02 全球购物
税务专业毕业生自荐信
2013/11/10 职场文书
运动会稿件300字
2014/02/14 职场文书
上海世博会志愿者口号
2014/06/17 职场文书
大学生就业指导课心得体会
2016/01/15 职场文书
Python爬虫基础之爬虫的分类知识总结
2021/05/13 Python