创建二维列表未按预期工作
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]]
我是 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]]