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 25 Python
python实现自主查询实时天气
Jun 22 Python
Python玩转加密的技巧【推荐】
May 13 Python
python笔记之mean()函数实现求取均值的功能代码
Jul 05 Python
详解Python文件修改的两种方式
Aug 22 Python
Python+Redis实现布隆过滤器
Dec 08 Python
在Python中用GDAL实现矢量对栅格的切割实例
Mar 11 Python
python 错误处理 assert详解
Apr 20 Python
Python Django中间件使用原理及流程分析
Jun 13 Python
python模块如何查看
Jun 16 Python
Pytest实现setup和teardown的详细使用详解
Apr 17 Python
利用python Pandas实现批量拆分Excel与合并Excel
May 23 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
用PHP读取超大文件的实例代码
2012/04/01 PHP
使用php清除bom示例
2014/03/03 PHP
linux下使用crontab实现定时PHP计划任务失败的原因分析
2014/07/05 PHP
PHP中echo,print_r与var_dump区别分析
2014/09/29 PHP
PHP实现的各类hash算法长度及性能测试实例
2017/08/27 PHP
thinkphp整合系列之极验滑动验证码geetest功能
2019/06/18 PHP
PHP+MySql实现一个简单的留言板
2020/07/19 PHP
发现的以前不知道的函数
2006/09/19 Javascript
7个Javascript地图脚本整理
2009/10/20 Javascript
IE与firefox下Dhtml的一些区别小结
2009/12/02 Javascript
javaScript矢量图表库-gRaphael几行代码实现精美的条形图/饼图/点图/曲线图
2013/01/09 Javascript
实例说明为什么不要行内使用javascript
2014/04/18 Javascript
解决js函数闭包内存泄露问题的办法
2016/01/25 Javascript
jquery自定义右键菜单、全选、不连续选择
2016/03/01 Javascript
基于jQuery实现页面搜索功能
2020/03/26 Javascript
javascript 中的console.log和弹出窗口alert
2016/08/30 Javascript
jQuery替换节点用法示例(使用replaceWith方法)
2016/09/08 Javascript
jQuery插件easyUI实现通过JS显示Dialog的方法
2016/09/16 Javascript
angular+ionic 的app上拉加载更新数据实现方法
2017/01/16 Javascript
vue-cli单页应用改成多页应用配置详解
2017/07/14 Javascript
JavaScript实现简单图片轮播效果
2017/08/21 Javascript
AngularJS使用ng-repeat遍历二维数组元素的方法详解
2017/11/11 Javascript
Node.JS用纯JavaScript生成图片或滑块式验证码功能
2019/09/12 Javascript
vue配置nprogress实现页面顶部进度条
2019/09/21 Javascript
Python虚拟环境virtualenv的安装与使用详解
2017/05/28 Python
实例讲解python中的序列化知识点
2018/10/08 Python
python游戏地图最短路径求解
2019/01/16 Python
基于python实现对文件进行切分行
2020/04/26 Python
python golang中grpc 使用示例代码详解
2020/06/03 Python
python 指定源路径来解决import问题的操作
2021/03/04 Python
街头时尚在线:JESSICABUURMAN
2019/06/16 全球购物
iHerb俄罗斯:维生素、补品和天然产品
2020/07/09 全球购物
沙特阿拉伯排名第一的在线时尚购物应用程序:1Zillion
2020/08/08 全球购物
农业项目建议书
2014/08/25 职场文书
博士生专家推荐信
2015/03/25 职场文书
python 通过使用Yolact训练数据集
2021/04/06 Python