如何使用其他 2 个列表的值获取子列表的某些值?

How to get some values of sublists with the values of 2 other lists?

我声明了letters,哪个有更多的子列表,我声明了rowcolumns。 我想要做的是用 rowcolumn 的值获取 letters 的一些值。例如,我想要 letters 在行 [0](其中一个是 0)和列 [0](其中一个是 2)中的值,所以我必须重复在 letters 中再次处理行 [1](其中一个是 2)和列 [1](其中一个是 1)。所以在最后,当我打印 finalOutput 时,它应该显示在控制台 ['C', 'R'] 中。 如果我的解释不好,请原谅,但你可以指导你最终的结果。

我写了这个:

letters = [['letters1', 'a', 'c', 'b', 'BUILD'], ['letter2','F', 'P', 'Z', 'W', 'SHOW', 'BUILD'], ['leters3','R', 'X', 'N', 'BUILD', 'SHOW']]

row = [0, 2]
columns = [2, 1]

finalOutput = []
    
for i in range(len(letters)):
    for j in range(len(letters[i])):
        finalOutput.append(letters[row[i]][columns[j]])
print(finalOutput)

但是使用这段代码我有下一个错误 IndexError: list index out of range 显然我没有我之前提到的输出。

希望有人能帮帮我,谢谢!

在嵌套的 for 循环中,for 语句应遍历 rowcolumns 中的元素(因此从 row[0]columns[0] 开始,然后 row[1]columns[1]).

它现在正在做的是遍历 letters 中的每个元素,因此当 i = 0j = 2 时它会中断 - 这在 rowrow 中不存在columns,但在 letters.

中是有效坐标

你想要的是这样的:

for i in range(len(row)):
    finalOutput.append(letters[row[i]][columns[i]])
print(finalOutput)

这会遍历您的目标行-列组合,而不是 letters 中的每个元素。