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 13 Python
在Django的模型中执行原始SQL查询的方法
Jul 21 Python
windows 10下安装搭建django1.10.3和Apache2.4的方法
Apr 05 Python
Python使用requests及BeautifulSoup构建爬虫实例代码
Jan 24 Python
详解用python实现基本的学生管理系统(文件存储版)(python3)
Apr 25 Python
在django中图片上传的格式校验及大小方法
Jul 28 Python
Pandas操作CSV文件的读写实现方法
Nov 13 Python
python 解决flask 图片在线浏览或者直接下载的问题
Jan 09 Python
Python实现实时数据采集新型冠状病毒数据实例
Feb 04 Python
Python类和实例的属性机制原理详解
Mar 21 Python
jupyter 实现notebook中显示完整的行和列
Apr 09 Python
Scrapy实现模拟登录的示例代码
Feb 21 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
理解PHP5中static和const关键字的区别
2007/03/19 PHP
Yii2 assets清除缓存的方法
2016/05/16 PHP
利用php_imagick实现复古效果的方法
2016/10/18 PHP
datePicker——日期选择控件(with jquery)
2007/02/20 Javascript
jquery 输入框数字限制插件
2009/11/10 Javascript
Dom 是什么的详细说明
2010/10/25 Javascript
悄悄用脚本检查你访问过哪些网站的代码
2010/12/04 Javascript
Firefox和IE兼容性问题及解决方法总结
2013/10/08 Javascript
javascript实现炫酷的拖动分页
2015/05/11 Javascript
JavaScript实现的Tween算法及缓冲特效实例代码
2015/11/03 Javascript
基于javascript实现图片懒加载
2016/01/05 Javascript
获取阴历(农历)和当前日期的js代码
2016/02/15 Javascript
Javascript 数组去重的方法(四种)详解及实例代码
2016/11/24 Javascript
轻松实现jQuery添加删除按钮Click事件
2017/03/13 Javascript
JS检测是否可以访问公网服务器功能代码
2017/06/19 Javascript
深入理解vue Render函数
2017/07/19 Javascript
使用mint-ui开发项目的一些心得(分享)
2017/09/07 Javascript
解决jquery appaend元素中id绑定事件失效的问题
2017/09/12 jQuery
Puppeteer环境搭建的详细步骤
2018/09/21 Javascript
javascript数组的定义及操作实例
2019/11/10 Javascript
JavaScript HTML DOM 元素 (节点)新增,编辑,删除操作实例分析
2020/03/02 Javascript
Python中的rfind()方法使用详解
2015/05/19 Python
用python3教你任意Html主内容提取功能
2018/11/05 Python
使用pip安装python库的多种方式
2019/07/31 Python
python实现网站用户名密码自动登录功能
2019/08/09 Python
python3 webp转gif格式的实现示例
2019/12/10 Python
python爬虫学习笔记之pyquery模块基本用法详解
2020/04/09 Python
如何在mac版pycharm选择python版本
2020/07/21 Python
Python利用matplotlib绘制折线图的新手教程
2020/11/05 Python
python实现图片,视频人脸识别(dlib版)
2020/11/18 Python
用Python实现定时备份Mongodb数据并上传到FTP服务器
2021/01/27 Python
2014学习全国两会精神心得体会2000字
2014/03/11 职场文书
新员工试用期自我鉴定
2014/04/17 职场文书
春游踏青活动方案
2014/08/14 职场文书
22句经典语录:送给优柔寡断和胡思乱想的朋友们
2019/12/13 职场文书
html网页引入svg图片的4种方式
2022/08/05 HTML / CSS