学习循环和列表

时间:2013-02-27 03:47:38

标签: python loops for-loop

我是Python的初学者,我目前正在阅读Zed Shaw的课程“学习Python的Hardway”

因此,在练习32中我们被告知:

  

如何制作二维(2D)列表?       这是这样一个列表中的列表:[[1,2,3],[4,5,6]]

我这样做了:

# Extra 1
global_list = [[1, 2, 3]]
inside_list = []
for i in global_list[0]:
    inside_list.append(i)

global_list.append(inside_list)
print(global_list)

但我并不完全相信这是正确的方法。我的问题是:有没有办法在不离开for i in ....循环的情况下获得相同的结果?

我也试过这个,但没有用。

global_list = [[1, 2, 3]]
inside_list = []
for i in global_list[0]:
    inside_list.append(i)
    global_list.append(inside_list)
    print(global_list)

提前感谢您的回答。

3 个答案:

答案 0 :(得分:1)

列表可以像任何其他对象一样附加并插入到列表中,例如:

outer_list = []
print(outer_list)
inner_list1 = [1, 2, 3]
outer_list.append(inner_list1)
print(outer_list)
inner_list2 = [4, 5, 6]
outer_list.append(inner_list2)
print(outer_list)

答案 1 :(得分:1)

我不确定你是否已经超过列表理解。但是,做你正在做的事情的一个好方法是:

>>> global_list = [[1,2,3]]

>>> global_list.append([i + 3 for i in global_list[0]])

>>> print global_list

[[1, 2, 4], [4, 5, 6]]

答案 2 :(得分:0)

问题是“你如何制作一个二维(2D)列表?”。给出的答案是“这是一个列表,如下所示:[[1,2,3],[4,5,6]]”。从字面上看,这就是答案:

>>> a = [[1, 2, 3], [4, 5, 6]]
>>> print a
[[1, 2, 3], [4, 5, 6]]

你也可以这样做:

>>> a = [[1, 2, 3]]
>>> a.append([4, 5, 6])
>>> a
[[1, 2, 3], [4, 5, 6]]

您不需要for循环将列表附加到另一个列表中:

>>> a = [[1, 2, 3]]
>>> a[0]
[1, 2, 3]
>>> a.append(a[0])
>>> a
[[1, 2, 3], [1, 2, 3]]

然而,这使得列表列表的第二个元素与第一个元素相同,所以如果你改变一个,你就改变了另一个:

>>> a[0] is a[1]
True
>>> a[0][0] = 4
>>> a
[[4, 2, 3], [4, 2, 3]]

如何制作列表副本list(a[0])

>>> a = [[1, 2, 3]]
>>> a[0]
[1, 2, 3]
>>> a[0] is a[0]
True
>>> list(a[0])
[1, 2, 3]
>>> a[0] is list(a[0])
False
>>> a.append(list(a[0]))
>>> a
[[1, 2, 3], [1, 2, 3]] 
>>> a[0] is a[1]
False
>>> a[0][0] = 4
>>> a
[[4, 2, 3], [1, 2, 3]]