创建二维列表未按预期工作

Creating two dimensional list not working as expected

我是 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']

我假设将列表附加到列表会创建一个二维列表。

这是错误的吗?

(在重新阅读您的代码后编辑)我认为您的问题是您在外循环之外设置了 termDocument = []。如果将它移到外循环的顶部,它应该会给出所需的结果。

您可以尝试这样的操作:

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 个。

but it is just appending values to the end of the list and coming out as a one-dimensional list

print termDocuments[len(termDocuments)-1]

这是因为您要为最后一行的每个 termid 打印一维列表。据我所知,一开始你只能在 termids 中有一个 termids。

不过您对追加的直觉是正确的

>>> A = []

>>> A.append([1, 2, 3])
>>> A.append([7, 8, 9])

>>> print(A)
[[1, 2, 3], [7, 8, 9]]