TypeError:'int'对象不可迭代。为什么会出现这个错误?请帮忙
在编程中,有时候我们需要处理一些数据,这些数据可能来自不同的地方,比如用户输入、文件或者网络请求。为了让程序能够理解这些数据,我们通常会把它们转换成一种特定的格式。
比如说,如果我们从一个网页上获取了一些信息,这些信息可能是以文本的形式存在的。为了方便后续的处理,我们可能需要把这些文本转换成程序可以直接使用的格式,比如数字、列表或者字典。
在这个过程中,我们可能会用到一些工具或者库,这些工具可以帮助我们快速地完成转换工作,而不需要自己手动去处理每一条数据。
总之,数据转换是编程中一个非常重要的环节,它能帮助我们更好地管理和使用数据。
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
4 个回答
2
你有一个代码是 for i in kk
,而 kk
其实只是一个整数。你不能对一个整数进行循环,只能对一个序列或者可迭代的东西进行循环。
如果你想从 0 循环到 (kk-1)
,你可能想用 for i in range(kk)
。
3
有点跑题,不过:
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)]
>>>
看起来你的代码可以改成这样:
>>> 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)]
>>>
6
也许你想说的是
for i in range(kk):