我的代码应该读取矩阵中的每一行,并将其转换为距离矩阵中的一行数字:
for i in range(dim):
row = []
for j in range(dim):
line = f.readline()
words = line.split()
row.append(int(words))
distances.append(row)
但每次我尝试运行它时都会出现此错误: TypeError:int()参数必须是字符串,类字节对象或数字,而不是' list'
我不知道造成这种情况的原因。有什么想法吗?
答案 0 :(得分:0)
根据错误代码 - words
是list
个对象 - 尝试将list[index]
传递给int()
个来电,而不是一次传递整个列表。
答案 1 :(得分:0)
你可以使用这样的地图功能:
row.append(map(lambda item: int(item)), words)
答案 2 :(得分:0)
我不知道造成这种情况的原因。有什么想法吗?
错误信息非常明确:
TypeError:int()参数必须是字符串,类似字节的对象或数字,而不是' list'
确实:
words = line.split()
row.append(int(words))
str.split()
会返回list
。
我强烈建议you read this and put it into practice而不是发布有关这样一个小问题的问题。
答案 3 :(得分:-1)
用你的话说,你可能有一个列表对象。 (['word1', 'word2']
)等
您必须在列表中的每个出现时调用int()
方法。
通过
更改行row.append(int(words))
[row.append(int(word)) for word in words]
假设所有单词都是可以转换为整数的字符串。