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

2024-04-23 23:20:00 发布

您现在位置:Python中文网/ 问答频道 /正文

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

我的假设是,将一个列表附加到一个列表中会创建一个二维列表。你知道吗

这不对吗?你知道吗


Tags: 代码in文档ids列表forindex情况
3条回答

你可以这样做:

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个。你知道吗

(重新阅读代码后编辑)我认为您的问题是您将termDocument = []设置在外循环之外。如果你把它移到外循环的顶端,它应该会得到你想要的结果。你知道吗

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打印一个1-d列表。据我所知,termid中只能有一个termid。你知道吗

你的直觉是正确的

>>> A = []

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

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

相关问题 更多 >