2015-12-16 58 views
1
li1 = [['a','b','c'], ['c','d','e']] 
li2 = [['c','a','b'], ['c','e','d']] 
c = 1 
for i in range(len(l11)): 
    if (sorted[li1[i]]!=sorted(li2[i]): 
     c = 0 
if(c): k = True 
else: k = False 

如何在一行中編寫此代碼?另外如何使用zip()來完成這個? 如果li2 = [['a','c','b']]怎麼辦?使用zip將返回True,但它應該給出一個False。如何在一行中編寫並行循環迭代(列表具有不等長度)

+0

我已經加入其中列出了具有不等的長度的情況。 –

回答

5

您可以使用zip

>>> zip(li1, li2) 
<zip object at 0x0000000000723248> 
>>> list(zip(li1, li2)) 
[(['a', 'b', 'c'], ['c', 'a', 'b']), (['c', 'd', 'e'], ['c', 'e', 'd'])] 

all

>>> all([True, True, True]) 
True 
>>> all([True, False, True]) 
False 

k = all(sorted(x) == sorted(y) for x, y in zip(li1, li2)) 
相關問題