为了测试和这个问题,我把这部分代码隔离了
noTasks = int(input())
noOutput = int(input())
outputClist = []
outputCList = []
for i in range(0, noTasks):
for w in range(0, noOutput):
outputChecked = str(input())
outputClist.append(outputChecked)
outputCList.append(outputClist)
outputClist[:] = []
print(outputCList)
我这里有这个代码,我得到这个输出
[[], []]
我不知道如何得到下面的输出,我必须清除子列表,否则我会得到完全错误的东西。。。你知道吗
[["test lol", "here can be more stuff"], ["test 2 lol", "here can be more stuff"]]
不是将
outputClist
中包含的元素传递到outputCList
(不是最好的命名实践,也不是只有一个大写部分是变量名的唯一区别),而是传递对列表本身的引用。为了绕过Python的这个重要而有用的特性,您可以很容易地通过更改这一行来传递一个包含outputClist
元素的新列表至
或者等效地,正如@jornsharpe在他的评论中所说的那样
在Python中,一切都是对象。列表是包含元素的对象。只创建一个对象
outputclist
填充并清除其内容。最后,在outputCList
中多次出现一个列表,由于最后一件事是清除该列表,因此该列表为空。你知道吗相反,您必须为每个任务创建一个新列表:
相关问题 更多 >
编程相关推荐