合并多個python list以及合并多個 django QuerySet 的方法

來源:互聯網
上載者:User

標籤:

遇到合并多個list到一個 list 的情況。利用 chain 方法來合并多個list. 同樣也可以用來合并django 的 QuerySet. 


1. python用chain 來合并多個list。chain 是用C實現的,自然效能上比較可靠。下面看下基本用法:

#coding:utf-8from itertools import chaina = [1,2,"aaa",{"name":"roy","age":100}]b = [3,4]c = [5,6]#items = a + b + citems = chain(a,b,c)for item in items:    print item

輸出結果如下:
12aaa{‘age‘: 100, ‘name‘: ‘roy‘}3456

2. 在Django 總用 chain 合并多個QuerySet.本身如果在Django中如果要合并同一個model的多個QuerySet 的話,是可以採用這種方式的.
#coding:utf-8from itertools import chainfrom yihaomen.common.models import Articlearticles1 = 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 articles1print articles2print articles
這樣能很好的工作,但有些局限性,對於Django 來說很多情況下也夠用了,合并到一個 QuerySet 中,然後返回到模板引擎中去處理。

3.用chain 來實現,用chain 來實現會更方便,也沒那麼多限制條件,即使是不同的MODEL中查詢出來的資料,都可以很方便的合并到一個 list 中去.
#coding:utf-8from itertools import chainfrom yihaomen.common.models import Article, UserIDarticles1 = 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
原文地址:合并多個python list以及合并多個 django QuerySet 的方法, 感謝原作者分享。

合并多個python list以及合并多個 django QuerySet 的方法

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.