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对IP进行转换的一些操作技巧小结
Nov 09 Python
Python实现输出程序执行进度百分比的方法
Sep 16 Python
Python实现上下班抢个顺风单脚本
Feb 07 Python
python无限生成不重复(字母,数字,字符)组合的方法
Dec 04 Python
一文了解Python并发编程的工程实现方法
May 31 Python
pywinauto自动化操作记事本
Aug 26 Python
基于python3的socket聊天编程
Feb 17 Python
Python如何将函数值赋给变量
Apr 28 Python
scrapy爬虫:scrapy.FormRequest中formdata参数详解
Apr 30 Python
Selenium及python实现滚动操作多种方法
Jul 21 Python
python入门教程之基本算术运算符
Nov 13 Python
Python异常类型以及处理方法汇总
Jun 05 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判断一个数组是否为有序的方法
2015/03/27 PHP
Yii2简单实现多语言配置的方法
2016/07/23 PHP
ThinkPHP实现静态缓存和动态缓存示例代码
2017/05/02 PHP
JavaScript 利用StringBuffer类提升+=拼接字符串效率
2009/11/24 Javascript
JavaScript中两个感叹号的作用说明
2011/12/28 Javascript
BootStrap3使用错误记录及解决办法
2016/12/22 Javascript
JavaScript异步上传图片文件的实例代码
2017/07/04 Javascript
详解win7 cmd执行vue不是内部命令的解决方法
2017/07/27 Javascript
jQuery实现菜单栏导航效果
2017/08/15 jQuery
vue 项目如何引入微信sdk接口的方法
2017/12/18 Javascript
React组件中的this的具体使用
2018/02/28 Javascript
[48:22]VGJ.S vs VG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python实现的简单模板引擎功能示例
2017/09/02 Python
Python断言assert的用法代码解析
2018/02/03 Python
对pyqt5之menu和action的使用详解
2019/06/20 Python
详解在python操作数据库中游标的使用方法
2019/11/12 Python
解决pyinstaller打包运行程序时出现缺少plotly库问题
2020/06/02 Python
用Python爬取LOL所有的英雄信息以及英雄皮肤的示例代码
2020/07/13 Python
Django crontab定时任务模块操作方法解析
2020/09/10 Python
解决使用Pandas 读取超过65536行的Excel文件问题
2020/11/10 Python
HTML5实现锚点时请使用id取代name
2013/09/06 HTML / CSS
Hotter Shoes英国官网:英伦风格,舒适的鞋子
2017/12/28 全球购物
以设计师精品品质提供快速时尚:Mostata
2019/05/10 全球购物
莫斯科的韩国化妆品店:Sifo
2019/12/04 全球购物
接口中的方法可以是abstract的吗
2015/07/23 面试题
财务主管岗位职责
2014/02/28 职场文书
信息总监管理职责范本
2014/03/08 职场文书
品牌宣传方案
2014/03/21 职场文书
求职自荐信的格式
2014/04/07 职场文书
电子商务助理求职自荐信
2014/04/10 职场文书
体育运动口号
2014/06/09 职场文书
晋江市委常委班子四风问题整改工作方案
2014/10/26 职场文书
2014年煤矿工人工作总结
2014/12/08 职场文书
小学教育见习总结
2015/06/23 职场文书
又涨知识了,自律到底多重要?
2019/06/27 职场文书
vue本地构建热更新卡顿的问题“75 advanced module optimization”完美解决方案
2022/08/05 Vue.js