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

时间:2017-10-11 01:55:02

标签: python arrays list python-2.x

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

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

这是错的吗?

3 个答案:

答案 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 = []。如果将其移动到外循环的顶部,则应该给出所需的结果。