【问题标题】:Iterating through a 2D list using another list使用另一个列表遍历 2D 列表
【发布时间】:2017-04-09 05:55:22
【问题描述】:

下面的代码似乎在使用另一个列表迭代二维列表,这在概念上对我来说没有多大意义。 使用镜头时,与下面的代码等效的范围是多少,因为我发现它很难理解。

我在处理课程作业时更改了变量名,但如果它太抽象,我可以添加原始变量名。

#list2 is a 2d list
#list1 is a normal list
for list1 in list2
for k in range(n) #n and k are constants
#any if statement

【问题讨论】:

  • 您应该更好地格式化您的代码,使用缩进并在for 之后添加冒号。此外,尚不清楚n(或k)究竟是什么。在下面的回答中,我假设nlist2 的长度。
  • n 和 k 是不相关的常量,我不是故意要保留它的。它就在我更改变量名的地方
  • 如下所述,第一个for 语句之前的list1 的值无关紧要。它遍历 list2 的元素(list2 是一个 2D 列表 = 一个 1D 列表的列表),将值分配给变量 list1(使其成为 1D 列表)。

标签: python list for-loop multidimensional-array


【解决方案1】:

“2D”列表只是一个列表,其中每个元素本身就是一个列表。要访问“主”列表中列表的每个元素,请执行

for list1 in list2:
    for element in list1:
        print(element)

如果您想要使用range 的版本:

L2 = len(list2)
for i in range(L2):
    list1 = list2[i]
    L1 = len(list1)
    for j in range(L1):
        element = list1[j]
        print(element)

从上面应该清楚,在 for 循环中使用 range 很少是一个好主意,因为代码的可读性要差得多。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-13
    • 1970-01-01
    • 1970-01-01
    • 2018-04-02
    • 1970-01-01
    • 2022-01-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多