一种方式来分类遍历一对iterables a
的和b
按排序顺序是链它们和排序链式迭代:迭代在一对iterables的,由属性
for i in sorted(chain(a, b)):
print i
例如,如果每一个的元件可迭代是:
a: 4, 6, 1
b: 8, 3
然后该构建将产生元件的顺序
1, 3, 4, 6, 8
但是,如果迭代对对象进行迭代,则会按内存地址对对象进行排序。假设每个迭代遍历同一类型的对象,
什么是最快方式来遍历特定 属性的对象,该属性排序?
如果在迭代中要选择的属性不同,该怎么办?如果iterables
a
和b
两叠代foo
类型的对象,其属性foo.x
和相同类型的foo.y
,怎么可能一个叠代的a
元素通过x
和b
排序由y
排序?
对于#2的示例中,如果
a: (x=4,y=3), (x=6,y=2), (x=1,y=7)
b: (x=2,y=8), (x=2,y=3)
则元件应在顺序
1, 3, 4, 6, 8
如前制备。请注意,只有来自a
的x
属性和来自b
的y
属性才会进入排序和结果。
关于第二个问题:在排序是如何合并?你能提供一个例子吗? –
@TimPietzcker因为根据问题'foo.x'和'foo.y'属于同一类型,直觉上我会说OP会期望整个批次被排序在一个假想的'foo.z'上,等于相关的每个迭代的属性。 –
@ZeroPiraeus基本上是的。 –