遍历2D列表,将列表中一行上的每个值赋给一个变量,对每一行重复python

2024-06-16 13:42:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个由X,Y值组成的列表

aList = [[1, 2],[3, 4],[5, 6],[7, 8]]

即X=1,Y=2

我需要分别提取一行中的每个X和Y值,将这些值分别分配给X和Y变量,然后对X和Y值执行操作。在

然后循环到下一行,在该行中相同的进程将再次发生。我将使用print,而不是在这个循环之后需要出现的过多代码。在

即循环开始,X被指定为1,Y被指定为2,X和Y被用作公式的输入,循环结束(并重复此列表中的剩余值)

^{pr2}$

以下代码仅从列表中逐个提取值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语句,但我仍然需要一种方法来强制第二个循环重复。(这让我们回到了最初的问题)

for row in range(aListRows):
    for column in range(aListCols):
        if column == 0:
            X = aList[row][column] 
        elif column == 1:
            Y = aList[row][column]

一旦提供了X值,如何强制循环重新启动? 我假设循环会重复,这次提供Y的值

有更好的方法吗?在

应该指出这是Python2.7(所以我不能使用Python3独有的东西)


Tags: 方法代码in列表forifrangecolumn
2条回答

要分配变量而不是打印变量,可以执行以下操作:

for X,Y in aList:
   tempX = X
   tempY = Y

在第一次迭代时,tempX的值为1,tempY的值为2。在第二次迭代时,tempX将是3,tempY将是4。。。在

在内部列表的索引上循环,并向它们添加1。当column包含aListCols的值时,这将导致IndexError,因为len(a[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

相关问题 更多 >