我正在尝试访问存储在python中的三元组列表中的变量,我不知道该怎么做。我希望能够通过for循环遍历列表并获得x,y,x和&来自每个元组的p。我该怎么办?
MovesList = [ [[[1,2],3],1] , [[[2,5],3],1] , [[[1,3],0],2] ]
答案 0 :(得分:3)
您可以在迭代时解包元组:
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
答案 1 :(得分:0)
使用列表理解进行相同的解包
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]]
答案 2 :(得分:0)
我还发现你可以通过像这样的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)
当您要迭代的列表中包含所有相同大小的元组时,可以使用此选项