有从itertools看看product
:
import itertools
xs = range(1,10)
ys = range(11,20)
zs = itertools.product(xs,ys)
list(zs)
[(1,11) (1,12),(1,13),(1,14),(1,15),(1,16),(1,17),(1,18),(1,19),(2) ,(2,12),(2,13),(2,14),(2,15),(2,16),(2,17),(2,18),(2,19 ),(3,11),(3,12),(3,13),(3,14),(3,15),(3,16),(3,17),(3,18), (4,19),(4,11),(4,12),(4,13),(4,14),(4,15),(4,16),(4,17),(4 ,18),(4 (5,11),(5,12),(5,13),(5,14),(5,15),(5,16),(5,17),(5,18 ),(5,19),(6,11),(6,12),(6,13),(6,14),(6,15),(6,16),(6,17), (6,18),(6,19),(7,11),(7,12),(7,13),(7,14),(7,15),(7,16),(7 (8,11),(8,12),(8,13),(8,14),(8,15),(8,16), ),(8,17),(8,18),(8,19),(9,11),(9,12),(9,13),(9,14),(9,15), (9,16),(9,17),(9,18),(9,19)]
几个其他的事情 -
- 当你只表示了两两件事,它是共同使用一个元组(即使是一个命名元组) 所以有一个思考,为什么他们是先从字典 - 你可能有一个很好的理由:)
[('name','state'),('name','state'),('name','state')...]
另一种方法,将是直接比较元件,例如,你可以检查组A(1 http://stardict.sourceforge.net/Dictionaries.php下载的列表)和组B(2 http://stardict.sourceforge.net/Dictionaries.php下载的列表)的交点
>>> listA = [('fred','A'), ('bob','B'), ('mary', 'D'), ('eve', 'E')]
>>> listB = [('fred','X'), ('clive', 'C'), ('mary', 'D'), ('ben','B')]
# your listA and listB could be sets to begin with
>>> set.intersection(set(listA),set(listB))
set([('mary', 'D')])
然而,这种方法不允许重复...
@tobias_k因为在我的程序中,我使用字典来生成json对象。由于字典所代表的对象的数量可能会有所不同,我想我需要一个列表。 – fedorSmirnov
(对不起,点击编辑而不是添加评论)。托比亚斯问道,为什么我使用两个字典列表而不是两个字典。 – fedorSmirnov