制作列表的列表,其中列表的最后一个值递增
Make a list of lists where the last value of list is incremented
我想制作一个列表列表,其中每个子列表的第二个值都大于其前身的第二个值。
例如
我的 list_of_lists = [[1, 1], [1, 2], [1, 3], [1, 4],...]
我认为这样做可以,但我不明白为什么它没有附加列表的正确当前版本。
我要感谢 Scott 和 gionni 所做的工作,他们帮助我理解了为什么我的尝试是错误的,以及对象引用在其中的关键作用。
代码
mylist = [1,1]
mylist_of_lists = []
for i in list(range(1,11,1)):
print("i: ", i)
mylist[1] = i
print("mylist : ", mylist)
mylist_of_lists.append(mylist)
print("mylist_of_lists : ", mylist_of_lists)
print(mylist_of_lists)
控制台return
i: 1
mylist : [1, 1]
mylist_of_lists : [[1, 1]]
i: 2
mylist : [1, 2]
mylist_of_lists : [[1, 2], [1, 2]]
i: 3
mylist : [1, 3]
mylist_of_lists : [[1, 3], [1, 3], [1, 3]]
i: 4
mylist : [1, 4]
mylist_of_lists : [[1, 4], [1, 4], [1, 4], [1, 4]]
i: 5
mylist : [1, 5]
mylist_of_lists : [[1, 5], [1, 5], [1, 5], [1, 5], [1, 5]]
i: 6
mylist : [1, 6]
mylist_of_lists : [[1, 6], [1, 6], [1, 6], [1, 6], [1, 6], [1, 6]]
i: 7
mylist : [1, 7]
mylist_of_lists : [[1, 7], [1, 7], [1, 7], [1, 7], [1, 7], [1, 7], [1, 7]]
i: 8
mylist : [1, 8]
mylist_of_lists : [[1, 8], [1, 8], [1, 8], [1, 8], [1, 8], [1, 8], [1, 8], [1, 8]]
i: 9
mylist : [1, 9]
mylist_of_lists : [[1, 9], [1, 9], [1, 9], [1, 9], [1, 9], [1, 9], [1, 9], [1, 9], [1, 9]]
i: 10
mylist : [1, 10]
mylist_of_lists : [[1, 10], [1, 10], [1, 10], [1, 10], [1, 10], [1, 10], [1, 10], [1, 10], [1, 10], [1, 10]]
[[1, 10], [1, 10], [1, 10], [1, 10], [1, 10], [1, 10], [1, 10], [1, 10], [1, 10], [1, 10]]
期望输出
我的 list_of_lists = [[1, 1], [1, 2], [1, 3], [1, 4],...]
奥卡姆剃刀:它们看起来都一样的原因是它们都相同。
您需要为每次调用 append
创建一个新列表以添加(例如,append([mylist[0],i])
)。
我想制作一个列表列表,其中每个子列表的第二个值都大于其前身的第二个值。 例如 我的 list_of_lists = [[1, 1], [1, 2], [1, 3], [1, 4],...]
我认为这样做可以,但我不明白为什么它没有附加列表的正确当前版本。
我要感谢 Scott 和 gionni 所做的工作,他们帮助我理解了为什么我的尝试是错误的,以及对象引用在其中的关键作用。
代码
mylist = [1,1]
mylist_of_lists = []
for i in list(range(1,11,1)):
print("i: ", i)
mylist[1] = i
print("mylist : ", mylist)
mylist_of_lists.append(mylist)
print("mylist_of_lists : ", mylist_of_lists)
print(mylist_of_lists)
控制台return
i: 1
mylist : [1, 1]
mylist_of_lists : [[1, 1]]
i: 2
mylist : [1, 2]
mylist_of_lists : [[1, 2], [1, 2]]
i: 3
mylist : [1, 3]
mylist_of_lists : [[1, 3], [1, 3], [1, 3]]
i: 4
mylist : [1, 4]
mylist_of_lists : [[1, 4], [1, 4], [1, 4], [1, 4]]
i: 5
mylist : [1, 5]
mylist_of_lists : [[1, 5], [1, 5], [1, 5], [1, 5], [1, 5]]
i: 6
mylist : [1, 6]
mylist_of_lists : [[1, 6], [1, 6], [1, 6], [1, 6], [1, 6], [1, 6]]
i: 7
mylist : [1, 7]
mylist_of_lists : [[1, 7], [1, 7], [1, 7], [1, 7], [1, 7], [1, 7], [1, 7]]
i: 8
mylist : [1, 8]
mylist_of_lists : [[1, 8], [1, 8], [1, 8], [1, 8], [1, 8], [1, 8], [1, 8], [1, 8]]
i: 9
mylist : [1, 9]
mylist_of_lists : [[1, 9], [1, 9], [1, 9], [1, 9], [1, 9], [1, 9], [1, 9], [1, 9], [1, 9]]
i: 10
mylist : [1, 10]
mylist_of_lists : [[1, 10], [1, 10], [1, 10], [1, 10], [1, 10], [1, 10], [1, 10], [1, 10], [1, 10], [1, 10]]
[[1, 10], [1, 10], [1, 10], [1, 10], [1, 10], [1, 10], [1, 10], [1, 10], [1, 10], [1, 10]]
期望输出
我的 list_of_lists = [[1, 1], [1, 2], [1, 3], [1, 4],...]
奥卡姆剃刀:它们看起来都一样的原因是它们都相同。
您需要为每次调用 append
创建一个新列表以添加(例如,append([mylist[0],i])
)。