遍历2D列表,将列表中某一行上的每个值赋给一个变量,对每一行重复-python
我有一个列表,其中包含许多X,Y值遍历2D列表,将列表中某一行上的每个值赋给一个变量,对每一行重复-python,python,list,loops,2d,Python,List,Loops,2d,我有一个列表,其中包含许多X,Y值 aList = [[1, 2],[3, 4],[5, 6],[7, 8]] i、 e.X=1,Y=2 我需要分别提取行上的每个X和Y值,分别将这些值分配给X和Y变量,然后对X和Y值执行操作 然后,这应该循环到下一行,在那里同样的过程将再次发生。我将使用print,而不是这个循环之后需要出现的过多代码 i、 e.循环开始,X被指定为1,Y被指定为2,X和Y被用作公式中的输入,循环结束,并重复此列表中的其余值 aListLen = len(aList) aLis
aList = [[1, 2],[3, 4],[5, 6],[7, 8]]
i、 e.X=1,Y=2
我需要分别提取行上的每个X和Y值,分别将这些值分配给X和Y变量,然后对X和Y值执行操作
然后,这应该循环到下一行,在那里同样的过程将再次发生。我将使用print,而不是这个循环之后需要出现的过多代码
i、 e.循环开始,X被指定为1,Y被指定为2,X和Y被用作公式中的输入,循环结束,并重复此列表中的其余值
aListLen = len(aList)
aListRows = len(aList)
aListCols = len(aList[0])
以下代码仅提取列表中的值1乘1
for row in range(aListRows):
for column in range(aListCols):
X = aList[row][column]
print X
按如下方式添加Y变量会导致错误
for row in range(aListRows):
for column in range(aListCols):
X = a[row][column]
Y = a[row][column+1]
print X
print Y
现在来看,我不确定下面的if/elif循环是否可以工作,因为X和Y值需要一起放入公式中。
我可以在第二个循环下添加if/elif语句,但是我仍然需要有一种方法来强制第二个循环重复。这让我们回到了最初的问题
一旦提供了X值,如何强制循环重新启动?
我假设循环会重复,这次提供Y的值
有更好的方法吗
应该指出,这是Python2.7,因此我不能使用Python3独有的任何东西,因为您正在循环内部列表的索引并向其中添加1。当列包含aListCols的值时,这将导致索引器错误,因为lena[row]==column+1 我想你正在寻找这个:
In [17]: aList = [[1, 2],[3, 4],[5, 6],[7, 8]]
In [18]: for X,Y in aList:
....: print "X value is %s, Y value is %s" %(X, Y)
....:
X value is 1, Y value is 2
X value is 3, Y value is 4
X value is 5, Y value is 6
X value is 7, Y value is 8
在内部列表的索引上循环并向其中添加1。当列包含aListCols的值时,这将导致索引器错误,因为lena[row]==column+1 我想你正在寻找这个:
In [17]: aList = [[1, 2],[3, 4],[5, 6],[7, 8]]
In [18]: for X,Y in aList:
....: print "X value is %s, Y value is %s" %(X, Y)
....:
X value is 1, Y value is 2
X value is 3, Y value is 4
X value is 5, Y value is 6
X value is 7, Y value is 8
要分配变量而不是打印变量,可以执行以下操作:
for X,Y in aList:
tempX = X
tempY = Y
在第一次迭代中,tempX的值为1,tempY的值为2。在第二次迭代中,tempX将是3,tempY将是4…要分配变量而不是打印变量,您可以执行以下操作:
for X,Y in aList:
tempX = X
tempY = Y
在第一次迭代中,tempX的值为1,tempY的值为2。在第二次迭代中,tempX为3,tempY为4…您可以使用递归函数代替循环。 基本上,这是一个调用自身的函数。例如:
def myfunction():
(something happens that wants you to start the function over)
myfunction()
因此,它将再次调用该函数,迫使代码返回顶部。您可以使用递归函数代替循环。 基本上,这是一个调用自身的函数。例如:
def myfunction():
(something happens that wants you to start the function over)
myfunction()
因此,它将再次调用函数,迫使代码返回顶部。我需要指定X=1和Y=2,以便在公式中使用X和Y变量。Print只是作为赋值后发生的情况的一个例子。我需要赋值X=1和Y=2,这样X和Y变量就可以用在公式中。“打印”只是作为分配后发生的情况的一个示例。