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实现的简单发送邮件脚本分享
Nov 07 Python
Python计算程序运行时间的方法
Dec 13 Python
Python中使用Beautiful Soup库的超详细教程
Apr 30 Python
Python中的列表生成式与生成器学习教程
Mar 13 Python
Django自定义认证方式用法示例
Jun 23 Python
Python常见工厂函数用法示例
Mar 21 Python
python连接mongodb密码认证实例
Oct 16 Python
python遍历文件目录、批量处理同类文件
Aug 31 Python
python读文件的步骤
Oct 08 Python
python通过函数名调用函数的几种场景
Sep 23 Python
python如何进行基准测试
Apr 26 Python
matlab xlabel位置的设置方式
May 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
十大感人催泪爱情动漫 第一名至今不忍在看第二遍
2020/03/04 日漫
php以fastCGI的方式运行时文件系统权限问题及解决方法
2015/05/11 PHP
laravel-admin 后台表格筛选设置默认的查询日期方法
2019/10/03 PHP
JavaScript 模仿vbs中的 DateAdd() 函数的代码
2007/08/13 Javascript
javascript 定义初始化数组函数
2009/09/07 Javascript
jquery 模拟类搜索框自动完成搜索提示功能(改进)
2010/05/24 Javascript
js 使用form表单select类实现级联菜单效果
2012/12/19 Javascript
jQuery实现数字加减效果汇总
2014/12/16 Javascript
JS中多步骤多分步的StepJump组件实例详解
2016/04/01 Javascript
javascript之Array 数组对象详解
2016/06/07 Javascript
AngularJS入门教程之表单校验用法示例
2016/11/02 Javascript
基于layer.js实现收货地址弹框选择然后返回相应的地址信息
2017/05/26 Javascript
vue+node+webpack环境搭建教程
2017/11/05 Javascript
javascript中innerHTML 获取或替换html内容的实现代码
2020/03/17 Javascript
vue实现循环滚动列表
2020/06/30 Javascript
Python两个整数相除得到浮点数值的方法
2015/03/18 Python
Python使用QQ邮箱发送Email的方法实例
2017/02/09 Python
解决python多行注释引发缩进错误的问题
2019/08/23 Python
Flask框架请求钩子与request请求对象用法实例分析
2019/11/07 Python
python数据预处理方式 :数据降维
2020/02/24 Python
python文件及目录操作代码汇总
2020/07/08 Python
详解Python利用configparser对配置文件进行读写操作
2020/11/03 Python
Python 的 f-string 可以连接字符串与数字的原因解析
2021/02/20 Python
Django和Ueditor自定义存储上传文件的文件名
2021/02/25 Python
使用CSS3创建动态菜单效果
2015/07/10 HTML / CSS
Html5 canvas实现粒子时钟的示例代码
2018/09/06 HTML / CSS
Farfetch中文官网:奢侈品牌时尚购物平台
2020/03/15 全球购物
俄罗斯建筑和装饰材料在线商店:Stroilandia
2020/07/25 全球购物
证婚人搞笑证婚词
2014/01/10 职场文书
市场部管理制度
2014/02/02 职场文书
2014矛盾纠纷排查调处工作总结
2014/12/09 职场文书
餐饮食品安全责任书
2015/01/29 职场文书
清洁工个人工作总结
2015/03/05 职场文书
2015国庆节宣传语
2015/07/14 职场文书
《夜莺的歌声》教学反思
2016/02/22 职场文书
MySQL表字段时间设置默认值
2021/05/13 MySQL