代码之家  ›  专栏  ›  技术社区  ›  Deusnominus

复杂列表理解语法

  •  -6
  • Deusnominus  · 技术社区  · 3 年前

    只是想知道是否有可能用一行字来写,如果有,如何写。

    lst1 = [0,1,2,3,4,5,6,7,8,9,10]
    lst2 = [[0,4],[1,5],[2,6],[3,7]]
    list3 = []
    list4 = []
    list5 = []
    
    for l in lst1:
        for k in lst2:
             if l == k[0]:
               list3.append(k)
             elif l==k[1]:
                list4.append(k)
             else:
                list5.append(l)
                     
    print('lst1',lst1)
    print('lst2',lst2)
    print('list3',list3)
    print('list4',list4)
    print('list5',list5)
    
    1 回复  |  直到 3 年前
        1
  •  1
  •   Samwise    3 年前

    通常可以将嵌套 for 循环,通过使用相同的 for ... in 顺序相同的语句:

    list3 = [k for l in lst1 for k in lst2 if l == k[0]]
    list4 = [k for l in lst1 for k in lst2 if l == k[1]]
    list5 = [l for l in lst1 for k in lst2 if l not in k]