1

我是 Python 初学者,目前正在学习 Zed Shaw 的课程“Learn Python the 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 循环的情况下获得相同的结果?

我也试过这个,没有用。

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)

提前感谢您的回答。

4

3 回答 3

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)
于 2013-02-27T03:53:13.623 回答
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]]
于 2013-02-27T04:17:08.733 回答
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]]
于 2013-02-27T03:51:27.763 回答