分离/访问三元组列表,如[[[x,y],z],p]



我试图访问存储在python三重元组列表中的变量,我不确定如何做到这一点。我希望能够在for循环中遍历列表并得到x y x &从每个元组中取P。我该怎么做呢?

MovesList = [  [[[1,2],3],1] , [[[2,5],3],1] , [[[1,3],0],2]  ]

可以在遍历元组时解包:

Python 2:

>>> for ((x,y),z),p in MovesList:
...     print x, y, z, p
Python 3:

>>> for ((x,y),z),p in MovesList:
...     print(x,y,z,p)

这两个结果都是:

1 2 3 1
2 5 3 1
1 3 0 2

与列表推导式相同的解包

In [202]: [[x,y,z,p] for ([[x,y],z],p) in MovesList]
Out[202]: [[1, 2, 3, 1], [2, 5, 3, 1], [1, 3, 0, 2]]

我还发现您可以通过将其放入while循环来解压缩没有有限空间的元组列表,如下所示:

Mylist = list()
MyOtherList = list()
//list is packed my tuples of four {(a,b,c,d),(a,b,c,d),(a,b,c,d),...}
While MyList[0] != Null:
     var w = MyList[0][0]
     var x = MyList[0][1]
     var y = MyList[0][2]
     var z = MyList[0][3]
     MyList.Remove(w,x,y,z)
     //do something with w,x,y,z based upon use
     MyOtherList = getMoreListItems(w,x,y,z)
     MyList.extend(MyOtherList)

当你想遍历的列表中都是相同大小的元组时,可以使用

最新更新