Python 类型错误:';int';对象是不可编辑的。为什么我会犯这个错误?请帮忙
因为Python 类型错误:';int';对象是不可编辑的。为什么我会犯这个错误?请帮忙,python,Python,因为kk=int(k) kk只是一个数字,不是一个数字数组 你想做什么,让我们帮你修复它?你在kk中为i设置了,而kk只是一个整数。不能迭代整数,只能迭代序列/iterable 如果您想从0迭代到(kk-1),,也许您的意思是 def get_top_k(frequency, k): temp = frequency key = "" tvalues = [] values = [] kk = int(k) i = 0 for i in t
kk=int(k)
kk
只是一个数字,不是一个数字数组
你想做什么,让我们帮你修复它?你在kk中为i设置了
,而kk
只是一个整数。不能迭代整数,只能迭代序列/iterable
如果您想从0迭代到(kk-1)
,,也许您的意思是
def get_top_k(frequency, k):
temp = frequency
key = ""
tvalues = []
values = []
kk = int(k)
i = 0
for i in temp.keys():
key = i
num = [int(frequency[key])]
tvalues += num
tvalues = bubble_sort(tvalues)
i = 0
for i in kk:
num = [int(tvalues[i])]
values += num
print(values)
i = 0
result = {}
for i in kk:
result += {(str(temp[values[i]])):(int(values[i]))}
return result
有点离题,但:
for i in range(kk):
例如:
for i in temp.keys():
key = i
num = [int(frequency[key])]
tvalues += num
should just be:
tvalues = temp.values()
看起来您的代码可以更改为:
>>> D = {'a':1, 'b':2, 'c':3, 'd':4}
>>> D.keys()
['a', 'c', 'b', 'd']
>>> D.values()
[1, 3, 2, 4]
>>> D.items()
[('a', 1), ('c', 3), ('b', 2), ('d', 4)]
>>>
xrange
也不会有什么坏处@Aviral(如果不是Python3.x:)进一步解释:如果确实需要迭代一系列数字,则内置函数range()非常方便。它生成包含算术级数的列表,例如:>>范围(10)
[0,1,2,3,4,5,6,7,8,9]
(来源:)下面是3.3的“范围”链接-
>>> D = {'a':1, 'b':2, 'c':3, 'd':4}
>>> def get_top_k(D, k):
... return sorted(D.items(), reverse=True, key=lambda x: x[1])[:k]
...
>>> get_top_k(D, 2)
[('d', 4), ('c', 3)]
>>>