我尝试用for循环遍历一个整数列表,然而,我们知道在python中,int是不可迭代的,所以我想知道是否有其他方法可以存储整数,这样我就可以遍历整数了?
def get_index_of_smallest(pint):
integers_list = []
for int in pint:
if int > 0:
integers_list.append(int)
return min(integers_list)
integers = int(input("Please enter a bunch of integers: "))
get_index_of_smallest(integers)
上面的代码就是我尝试的,你可以看到,如果我尝试将一个整数列表传递到for循环中,python会返回一个错误,并指出数据类型“int”是不可迭代的。
5条答案
按热度按时间wsewodh21#
试试这样的方法:
cfh9epnr2#
您可能需要在代码中修复一些问题:
1.不要使用
int
作为变量名。它在Python中有特殊的含义,这个名字不应该用在其他地方。1.如果你希望用户输入一堆数字,你不能直接将input转换为int。这取决于数字将如何输入,但你首先需要将它们与input string分开(最初
input
返回字符串)。这就是导致错误的原因。请查看前面的答案。1.你的函数的逻辑需要一些改进。如果你想从你的列表中返回最小的,非负的元素,没有必要先过滤它们到单独的列表中。
zphenhs43#
你可以修改你的代码,比如,为了获取输入而不是把所有的东西都转换成
int
本身,你可以使用map
:我已经修改了你的代码,并分开每一步更好地理解。
vlju58qv4#
Python试图将输入改为integer,你知道你不能迭代整数,所以
string.split(separator, maxsplit)
是最好的,这个函数根据你给它的分隔符将字符串分成几个部分(在你的例子中是空间' '
),你可以通过列表解析将new list中的所有值改为整数,比如new_list = [int(x) for x in integers]
。最终代码如下所示:
js4nwp545#
您可以尝试这样做,将输入的整数直接转换为字符串。