但是在您的情况下,您将其传递为不可迭代的,这是不正确的:>>> lis = range(10)>>> lis[:] = range(5)>>> lis #all items of `lis` replaced with range(5)[0, 1, 2, 3, 4]>>> lis[:] = 5 #Non-iterable will raise an error.Traceback (most recent call last): File "<ipython-input-77-0704f8a4410d>", line 1, in <module> lis[:] = 5TypeError: can only assign an iterable>>> lis[:] = 'foobar' #works for any iterable/iterator>>> lis['f', 'o', 'o', 'b', 'a', 'r']由于您不能迭代整数,因此会出现错误.>>> for x in 1: passTraceback (most recent call last): File "<ipython-input-84-416802313c58>", line 1, in <module> for x in 1:passTypeError: 'int' object is not iterableHello my fellow programmers.I am a fairly new programmer, and now I am facing a great predicament. I am getting the error:can only assign an iterableFirstly I don't know what that means.Secondly I will leave my code for you professionals to critique it:def num_top(int_lis): duplic_int_lis = int_lis int_firs= duplic_int_lis [0] int_lis[:] = duplic_int_lis [int_firs]Basically I am trying to find the [0] element in the list and then using that int as an index position to find the integer at that index position. 解决方案 int_lis[:] = duplic_int_lis [int_firs] means assign all the items of duplic_int_lis [int_firs] to int_lis, so it expects you to pass an iterable/iterator on the RHS.But in your case you're passing it an non-iterable, which is incorrect:>>> lis = range(10)>>> lis[:] = range(5)>>> lis #all items of `lis` replaced with range(5)[0, 1, 2, 3, 4]>>> lis[:] = 5 #Non-iterable will raise an error.Traceback (most recent call last): File "<ipython-input-77-0704f8a4410d>", line 1, in <module> lis[:] = 5TypeError: can only assign an iterable>>> lis[:] = 'foobar' #works for any iterable/iterator>>> lis['f', 'o', 'o', 'b', 'a', 'r']As you cannot iterate over an integer, hence the error.>>> for x in 1: passTraceback (most recent call last): File "<ipython-input-84-416802313c58>", line 1, in <module> for x in 1:passTypeError: 'int' object is not iterable 这篇关于“只能迭代". Python错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持! 上岸,阿里云! 08-28 12:12