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脚本实现查找webshell的方法
Jul 31 Python
python实现文本文件合并
Dec 29 Python
使用Python编写基于DHT协议的BT资源爬虫
Mar 19 Python
python基于http下载视频或音频
Jun 20 Python
Python-ElasticSearch搜索查询的讲解
Feb 25 Python
Django应用程序入口WSGIHandler源码解析
Aug 05 Python
基于python实现可视化生成二维码工具
Jul 08 Python
详解Python中的编码问题(encoding与decode、str与bytes)
Sep 30 Python
用python写PDF转换器的实现
Oct 29 Python
最新PyCharm 2020.2.3永久激活码(亲测有效)
Nov 26 Python
使用django自带的user做外键的方法
Nov 30 Python
PyQt5通过信号实现MVC的示例
Feb 06 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中多线程的两个实现方法
2016/10/14 PHP
PHP中功能强大却很少使用的函数实例小结
2016/11/10 PHP
微信公众号开发之获取位置信息php代码
2018/06/13 PHP
javascript 跨浏览器开发经验总结(五) js 事件
2010/05/19 Javascript
JavaScript 处理Iframe自适应高度(同或不同域名下)
2013/03/29 Javascript
js 图片随机不定向浮动的实现代码
2013/07/02 Javascript
淘宝网提供的国内NPM镜像简介和使用方法
2014/04/17 Javascript
js图片闪动特效可以控制间隔时间如几分钟闪动一下
2014/08/12 Javascript
JS截取与分割字符串常用技巧总结
2015/11/10 Javascript
用jQuery实现圆点图片轮播效果
2017/03/19 Javascript
微信小程序图片选择、上传到服务器、预览(PHP)实现实例
2017/05/11 Javascript
js 监控iframe URL的变化实例代码
2017/07/12 Javascript
React 子组件向父组件传值的方法
2017/07/24 Javascript
客户端(vue框架)与服务器(koa框架)通信及服务器跨域配置详解
2017/08/26 Javascript
微信小程序switch开关选择器使用详解
2018/01/31 Javascript
如何从零开始手写Koa2框架
2019/03/22 Javascript
通过js随机函数Math.random实现乱序
2020/05/19 Javascript
Python操作Mysql实例代码教程在线版(查询手册)
2013/02/18 Python
介绍Python中的文档测试模块
2015/04/28 Python
python字符串中的单双引
2017/02/16 Python
windows下python 3.6.4安装配置图文教程
2018/08/21 Python
python对视频画框标记后保存的方法
2018/12/07 Python
在python 中split()使用多符号分割的例子
2019/07/15 Python
python GUI库图形界面开发之PyQt5时间控件QTimer详细使用方法与实例
2020/02/26 Python
Python中常见的数制转换有哪些
2020/05/27 Python
python中可以声明变量类型吗
2020/06/18 Python
海淘零差价,宝贝全球购: 宝贝格子
2016/08/24 全球购物
苹果美国官方商城:Apple美国
2016/08/24 全球购物
New Balance英国官方网站:始于1906年,百年慢跑品牌
2016/12/07 全球购物
Draper James官网:知名演员瑞茜·威瑟斯彭所创品牌
2017/10/25 全球购物
大学生职业生涯规划书前言
2014/01/09 职场文书
员工工作表扬信范文
2014/01/13 职场文书
总账会计岗位职责
2014/03/13 职场文书
运动会方阵口号
2014/06/07 职场文书
工厂清洁工岗位职责
2015/02/14 职场文书
毕业论文指导老师意见
2015/06/04 职场文书