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 相关文章推荐
Python3.x和Python2.x的区别介绍
Feb 12 Python
python中列表元素连接方法join用法实例
Apr 07 Python
1 行 Python 代码快速实现 FTP 服务器
Jan 25 Python
每天迁移MySQL历史数据到历史库Python脚本
Apr 13 Python
在Pycharm中项目解释器与环境变量的设置方法
Oct 29 Python
Python面向对象程序设计示例小结
Jan 30 Python
Python实现变声器功能(萝莉音御姐音)
Dec 05 Python
使用python求解二次规划的问题
Feb 29 Python
Python -m参数原理及使用方法解析
Aug 21 Python
如何完美的建立一个python项目
Oct 09 Python
再也不用花钱买漫画!Python爬取某漫画的脚本及源码
Jun 09 Python
Python OpenGL基本配置方式
May 20 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 daddslashes()和 saddslashes()有哪些区别分析
2012/10/26 PHP
ThinkPHP有变量的where条件分页实例
2014/11/03 PHP
Yii2.0多文件上传实例说明
2017/07/24 PHP
PHP+Ajax实现的检测用户名功能简单示例
2019/02/12 PHP
PHP迭代器和生成器用法实例分析
2019/09/28 PHP
JavaScript 学习笔记二 字符串拼接
2010/03/28 Javascript
利用JQuery和JS实现奇偶行背景颜色自定义效果
2012/11/19 Javascript
JSP跨iframe如何传递参数实现代码
2013/09/21 Javascript
深入理解JavaScript系列(38):设计模式之职责链模式详解
2015/03/04 Javascript
Javascript获取随机数的实现方法
2016/06/22 Javascript
手机Web APP如何实现分享多平台功能
2016/08/19 Javascript
微信小程序 地图定位简单实例
2016/10/14 Javascript
jQuery获取this当前对象子元素对象的方法
2016/11/29 Javascript
angular+bootstrap的双向数据绑定实例
2017/03/03 Javascript
从零开始学习Node.js系列教程之设置HTTP头的方法示例
2017/04/13 Javascript
js获取元素的偏移量offset简单方法(必看)
2017/07/05 Javascript
js实现拖拽上传图片功能
2017/08/01 Javascript
如何用vue-cli3脚手架搭建一个基于ts的基础脚手架的方法
2019/12/12 Javascript
Python网页解析利器BeautifulSoup安装使用介绍
2015/03/17 Python
在Python中使用HTML模版的教程
2015/04/29 Python
Python删除Java源文件中全部注释的实现方法
2017/08/30 Python
Python+matplotlib绘制不同大小和颜色散点图实例
2018/01/19 Python
python3第三方爬虫库BeautifulSoup4安装教程
2018/06/19 Python
python使用Matplotlib画饼图
2018/09/25 Python
python去除拼音声调字母,替换为字母的方法
2018/11/28 Python
Python爬虫设置代理IP(图文)
2018/12/23 Python
Django用户认证系统 User对象解析
2019/08/02 Python
python Qt5实现窗体跟踪鼠标移动
2019/12/13 Python
我爱我家教学反思
2014/05/01 职场文书
妇女干部培训方案
2014/05/12 职场文书
消防宣传口号
2014/06/16 职场文书
在校大学生自我评价范文
2014/09/12 职场文书
南阳市白酒市场的调查报告
2019/11/08 职场文书
CSS预处理框架——Stylus
2021/04/21 HTML / CSS
浅谈如何提高PHP代码质量之单元测试
2021/05/28 PHP
Java Optional<Foo>转换成List<Bar>的实例方法
2021/06/20 Java/Android