繁体   English   中英

如何在 Python 中创建一个接受数字和整数列表的函数?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM