[英]How can I create a function in Python that takes a list of numbers and an integer?
我正在寻找创建一个函数,该函数接受一个列表和一个整数作为参数,并以小于第二个参数中的值的非常值的升序输出列表。
然后,如果整数(第二个参数)的值小于列表中的每个值,该函数将返回一个打印语句,如“这里什么都没有”。
def thisFunction(mylist=[], *myNum):
print(mylist)
print(*myNum)
for x in list(int(mylist[0])):
if x > myNum:
mylist.remove(x)
mylist.sort()
elif x < myNum:
print(f"There are no values less than numbers{myNum}")
thisFunction([12,4,5,6,7,11,56],5)
现在,我得到一个TypeError: 'int' object is not iterable 。 我不知道我做错了什么!
您只能在arg
是可迭代的时应用list(args)
,在文档中定义为“能够一次返回一个成员的对象”。 因此, list(int(mylist[0]))
没有意义,因为您实际上是在给定示例中的输入列表的情况下尝试list(12)
。
相反,也许您想要做的是使用for
循环遍历给定的列表,将该列表中的每个元素与myNum
进行比较,创建一个仅包含小于myNum
元素的列表,对创建的列表进行排序,然后打印它. 这是帮助您入门的修订代码。 (我做了一些风格上的编辑,使函数更具 Pythonic 和可读性,即用return
语句替换函数中的print
调用等。)
def thisFunction(mylist, myNum):
if myNum < min(mylist):
return f"There are no values less than numbers{myNum}"
else:
lst = [num for num in mylist if num < myNum]
lst.sort()
return lst
我们可以方便地使用min
函数检查mylist
是否有任何小于myNum
元素。 如果存在小于myNum
值,我们将这些元素放在一个名为lst
的新列表中,并以其排序状态返回。
检查输出:
>>> print(thisFunction([12,4,5,6,7,11,56],10))
[4, 5, 6, 7]
>>> print(thisFunction([12,4,5,6,7,11,56],3))
There are no values less than 3
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.