有從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