![](/img/trans.png)
[英]Do I need to use list() to append a list into another list in Python?
[英]how do I append a list with two variables to another list that already has that list in it but with different values? python
我正在编程课程中,遇到一个问题
gamecentre1 = [winnerscore, winner]
organise = []
organise.extend([gamecentre1])
from operator import attrgetter, itemgetter
sorted(organise, key= itemgetter(0))
print(organise)
f = open("gameresults.txt","w")
f.write("Here are the winners of the games: \n")
f.write(str(organise))
f.write("\n")
f.close()
我试图将两个变量添加到一个列表,并将该列表添加到另一个列表。 然后,我要根据子列表的整数变量(该整数是winnerscore
)来组织更大的列表。 但是,问题在于我无法正确地组织它们,并且我担心由于必须将具有相同变量的相同列表追加到较大的列表中而不覆盖其中的现有列表,因此较大的列表只会一遍又一遍地具有相同的值。
这是因为我想在程序每次运行时都存储变量,而又不遗漏先前游戏中变量的值。
我该怎么做呢?
我试图将两个变量添加到一个列表,并将该列表添加到另一个列表。 然后,我想根据子列表的整数变量来组织更大的列表
听起来您想要的是一个嵌套列表 -一个小列表的大列表,这样每个小列表都彼此独立。 现在,代码中阻碍您完成此操作的关键问题是extend()
-本质上是列表串联 ,这不是您想要的。 例如,
x = [1, 2]
x.extend([3, 4]) # x == [1, 2, 3, 4]
而是尝试使用append()
,它将其参数添加为列表中的下一个值。 例如:
x = []
x.append([3, 4]) # [[3, 4]]
x.append([1, 2]) # [[3, 4], [1, 2]]
现在,在上面的示例中,我们有一个列表x
,该列表x
长两个元素,每个元素本身就是两个元素的列表。 现在我们可以将其插入sort
:
y = sorted(x, key=lambda i: i[0])
print(y)
# [[1, 2], [3, 4]]
(该lambda i: i[0]
实际上只是一个正在与您一同做什么更优雅的方式itemgettr(0)
-这是一个lambda,一个小的内联函数,它有一个参数i
并返回0
的个元素i
在这种情况下,传入的i
是较小的列表之一)。
现在,您有了一个较小列表的排序列表,您可以对它们进行任何操作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.