如何在一行中编写并行循环迭代(列表具有不等长度)

时间:2015-12-16 16:19:38

标签: python list python-3.x

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。

1 个答案:

答案 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))