我是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)
提前感谢您的回答。
答案 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]]