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

遍历列表以获取指定序列中的值

  •  0
  • Schneider  · 技术社区  · 4 年前

    我有一个初始元组,我试图通过迭代来执行进一步的计算。不过,我最后还是犯了一个错误。” too many values to unpack “这个问题是通过以下建议解决的( Python - too many values to unpack 'list' object has no attribute 'reshape' .

    Z=[([A,3],[A1,6])]  #A and A1 are 2x2 matrices 
    y=[]
    for data,label in Z:
    
        x = data.reshape((4,))
        y.append(int(label))
    

    我能理解错误的原因。在这种情况下,我希望循环运行两次(因为我有两组数据[A-3,A1-6]),并且 data, label 成为: A , 3 A1 , 6 . 但它被误读为 data = [A,3] label = [A1,6] .

    什么是循环遍历这个列表并以我想要的方式生成数据的正确方法?

    N、 B:那个 Z

    1 回复  |  直到 4 年前
        1
  •  2
  •   Barmar 0___________    4 年前

    元组在列表中。您只是在列表上迭代,而不是在元组元素上迭代。你需要嵌套循环。

    for t in Z:
        for data, label in t:
            x = data.reshape(4,)
            y.append(int(label))
    

    如果去掉列表,就不需要嵌套循环。

    Z=([A,3],[A1,6])  #A and A1 are 2x2 matrices 
    y=[]
    for data,label in Z:
        x = data.reshape((4,))
        y.append(int(label))