我是Python的新手,我尝试了类似于我之前尝试过的东西并得到了正确的输出,但在这种情况下我的代码没有按预期工作,我不知道为什么。我正在尝试创建一个二维列表,其中包含文件ID(文件中的任意数字)。请参阅此处的代码:
termDocuments = []
termDocument = []
for ids in termids:
...
for documentIndices in range(
int(iitermids.index(ids)),
int(iitermids.index(ids)+int(documentFrequencyForTerm)-1)):
termDocument.append(docids[documentIndices])
termDocuments.append(termDocument)
print termDocuments[len(termDocuments)-1]
我知道我的范围非常混乱,我可能有一些样式问题,但它正在抓取正确的值,但没有正确添加它们。我希望termDocuments
包含类似
[['1', '2', '3'], ['4', '5', '6']]
但它只是将值附加到列表的末尾,并以这样的一维列表形式出现:
['1', '2', '3', '4', '5', '6']
我假设将列表附加到列表创建了一个二维列表。
这是错的吗?
答案 0 :(得分:0)
您可以尝试这样的事情:
list1 = []
for i in range(10): # creating a list with nested lists
list1.append([])
for j in range(10):
list1[i].append("1") # filling nested lists with ones
这将输出一个包含10个列表的列表,其中包含1个列表。
答案 1 :(得分:0)
但它只是将值附加到列表的末尾并作为一维列表出现
print termDocuments[len(termDocuments)-1]
这是因为您在最后一行打印了每个termid
的一维列表。据我所知,你可以在termids中只有一个termid来开始。
你对追加的直觉是正确的
>>> A = []
>>> A.append([1, 2, 3])
>>> A.append([7, 8, 9])
>>> print(A)
[[1, 2, 3], [7, 8, 9]]
答案 2 :(得分:-1)
(重新阅读您的代码后编辑)我认为您的问题是您在外部循环之外设置termDocument = []
。如果将其移动到外循环的顶部,则应该给出所需的结果。