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查找相似单词的方法
Mar 05 Python
python中split方法用法分析
Apr 17 Python
python实现中文输出的两种方法
May 09 Python
Python的Flask框架应用程序实现使用QQ账号登录的方法
Jun 07 Python
Python文件与文件夹常见基本操作总结
Sep 19 Python
基于python中staticmethod和classmethod的区别(详解)
Oct 24 Python
python tkinter界面居中显示的方法
Oct 11 Python
Python 比较文本相似性的方法(difflib,Levenshtein)
Oct 15 Python
Pandas分组与排序的实现
Jul 23 Python
python scrapy爬虫代码及填坑
Aug 12 Python
PyCharm搭建Spark开发环境的实现步骤
Sep 05 Python
Python基础之字典常见操作经典实例详解
Feb 26 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的分页功能
2007/03/21 PHP
分页详解 从此分页无忧(PHP+mysql)
2007/11/23 PHP
php实现的SESSION类
2014/12/02 PHP
PHP实现唤起微信支付功能
2019/02/18 PHP
JavaScript 应用类库代码
2008/06/02 Javascript
汉化英文版的Dreamweaver CS5并自动提示jquery
2010/11/25 Javascript
js自动查找select下拉的菜单并选择(示例代码)
2014/02/26 Javascript
jquery左边浮动到一定位置时显示返回顶部按钮
2014/06/05 Javascript
JavaScript对象属性检查、增加、删除、访问操作实例
2015/07/08 Javascript
javascript原型继承工作原理和实例详解
2016/04/07 Javascript
JavaScript简单获取页面图片原始尺寸的方法
2016/06/21 Javascript
Web打印解决方案之普通报表打印功能
2016/08/29 Javascript
Angular2 组件间通过@Input @Output通讯示例
2017/08/24 Javascript
去掉vue 中的代码规范检测两种方法(Eslint验证)
2018/03/21 Javascript
解决bootstrap模态框数据缓存的问题方法
2018/08/10 Javascript
npm配置国内镜像资源+淘宝镜像的方法
2018/09/07 Javascript
vue中axios的二次封装实例讲解
2019/10/14 Javascript
通过vue刷新左侧菜单栏操作
2020/08/06 Javascript
JS操作JSON常用方法(10w阅读)
2020/12/06 Javascript
vue如何使用rem适配
2021/02/06 Vue.js
原生JavaScript实现换肤
2021/02/19 Javascript
Python实现的序列化和反序列化二叉树算法示例
2019/03/02 Python
python golang中grpc 使用示例代码详解
2020/06/03 Python
解决pytorch 交叉熵损失输出为负数的问题
2020/07/07 Python
Pycharm同步远程服务器调试的方法步骤
2020/11/04 Python
HTML5单页面手势滑屏切换原理
2016/03/21 HTML / CSS
Trina Turk官网:美国时装和泳装品牌
2018/06/10 全球购物
就业推荐自我鉴定
2013/10/06 职场文书
合同专员岗位职责
2013/12/18 职场文书
菜篮子工程实施方案
2014/03/08 职场文书
毕业生就业协议书
2014/04/11 职场文书
法定代表人资格证明书
2014/09/11 职场文书
群众路线调研报告范文
2014/11/03 职场文书
学校通报表扬范文
2015/05/04 职场文书
地震捐款简报
2015/07/21 职场文书
python opencv将多个图放在一个窗口的实例详解
2022/02/28 Python