类型错误“列表索引必须是整数或切片,而不是元组”(第6行)

时间:2019-04-09 04:35:59

标签: python

我正在尝试预测撰写邮件模式中的下一个单词,但是我遇到了以上错误:

sequences = list ()

for i in range(1, len(encoded)):
    sequence = encoded[i - 1:i + 1]
    sequences.append(sequence)
sequence

X, Y = sequences[:,0], sequences[:,1] # error on this line
X = np.expand_dims(X, 1)
Y = np.expand_dims(Y, 1)

2 个答案:

答案 0 :(得分:0)

如果序列在sequences[:,0]中为ndarray,则可以像numpy那样进行切片。

但是list不支持,您可以使用[seq[0] for seq in sequences]

答案 1 :(得分:0)

您已经知道,错误是由于以下原因引起的:

X, Y = sequences[:,0], sequences[:,1]

sequences[:,0]是无效的语法。您可能想做以下几件事:

sequences[:0]将返回不超过sequences[0]的所有元素。因此,在这种情况下,这将返回一个空列表。

sequences[0:]将返回sequences[0]到列表末尾的所有元素。在这种情况下,它将返回[1, 2, 3]

sequences[0]当然会返回列表的第一个元素。


这不会引起错误,但是请注意,使用大写字母命名变量是错误的约定。 XY应该重命名为xy,以使其与变量和函数的generally accepted naming conventions保持一致。