学习循环和列表
问题描述:
我是一个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)
但我不完全确信这是正确的方法。我的问题是:有没有办法得到相同的结果,而没有离开我在....循环?
我也试过这个,无济于事。
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)
在此先感谢您的答案。
答
问题是“你如何制作二维(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]]
答
列表可以像任何其他对象被附加,并插入到一个列表,例如:
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)
答
我我不确定你是否已经完成了列表理解。然而,一个很好的方式做你正在做的事情是:
>>> 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]]
你的答案是你的问题 – Claudiu 2013-02-27 03:50:02
是否有更多的限制? '[[1,2,3],[4,5,6]]'是完全有效的...... – mgilson 2013-02-27 03:50:43
我不认为OP想知道如何复制粘贴'[[1,2,3],[ 4,5,6]]'。 ;)而是他想知道例如如何在一定范围内建立3组。 – kay 2013-02-27 03:51:51