【问题标题】:Zip nested list with list in Python在Python中使用列表压缩嵌套列表
【发布时间】:2016-01-24 20:45:08
【问题描述】:

这里是 Python 新手。我有四个列表,其中三个是嵌套列表,一个不是。我正在寻找一种使用列表压缩嵌套列表的方法,以便 zip 函数将每个嵌套列表项与主列表中的相应项进行比较。

main = [1,3]
a = [[1,2,3][4,5,6]]
b = [[0,1,2][3,4,5]]
c = [[2,3,4][5,6,7]]

>>>[[[True, False, False],[False,True,False],[False,False,False]],
[[False,False,False],[True,False,False],[False,False,False]]]

我尝试过这样的事情:

abc = zip(a,b,c)
test = (x==y for x, y in zip(main,*abc)

但我收到错误消息“太多值无法解包”。有什么建议吗?

【问题讨论】:

  • 目前还不清楚[False, True, False][2, 1, 3] 的关系
  • 您的示例列表缺少一些逗号。而TrueFalse 应该是大写的。

标签: python list nested zip


【解决方案1】:

这个想法是zip()main列表与已经压缩的abc列表并嵌套list comprehension

>>> [[[item == x for item in l] for l in lists] 
     for x, lists in zip(main, zip(a, b, c))]
[[[True, False, False], [False, True, False], [False, False, False]], 
 [[False, False, False], [True, False, False], [False, False, False]]]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-07
    • 2021-06-03
    • 1970-01-01
    • 1970-01-01
    • 2013-11-09
    • 1970-01-01
    • 2010-11-07
    相关资源
    最近更新 更多