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