2016-11-24 55 views
0

下面的代码似乎是通过使用另一个列表迭代2d列表,这在概念上对我没有多大意义。 使用镜头的范围等于下面的代码,因为我发现它很难理解。使用另一个列表遍历2D列表

我已经改变了变量名称,因为我在课程上工作,但如果它太抽象了,我可以添加原始变量名称。

#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 
+0

你应该更好地格式化你的代码,在'for'后面使用缩进和添加冒号。此外,还不清楚“n”(或“k”)究竟是什么。在我的回答中,我假定'n'是'list2'的长度。 –

+0

n和k是不相关的常量,我不打算把它留在里面。从那里我改变变量名称 –

+0

如下所述,在第一个'for'语句之前的list1的值并不重要。它遍历list2的元素(list2是2D列表= 1D列表的列表),将值赋给变量list1(使其成为一维列表)。 – HolyDanna

回答

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) 

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