所以我使用python链方法在django中组合两个查询集(列表)。
results=list(chain(data,tweets[:5]))
数据和推文是两个单独的列表。我现在有一个“结果”列表,其中包含我想要的数据和推文对象。
results=[data,tweets,data,tweets,data,tweets]
实现此类订购的最佳方式是什么?我尝试使用random.shuffle,但这不是我想要的。
答案 0 :(得分:6)
您可以使用itertools.chain.from_iterable
和zip
:
>>> data = [1,2,3,4]
>>> tweets = ['a','b','c','d']
>>> list(chain.from_iterable(zip(data,tweets)))
[1, 'a', 2, 'b', 3, 'c', 4, 'd']
使用itertools.izip
进行内存有效解决方案。
答案 1 :(得分:5)
这是使用迭代器的解决方案:
from itertools import izip
result = (v for t in izip(data, tweets) for v in t)
答案 2 :(得分:2)
你可以这样做:
>>> result = [None]*(len(data)+len(tweets))
>>> result[::2] = data
>>> result[1::2] = tweets