簡體   English   中英

我該如何做到這一點,以便我可以將多個輸入添加到 function 並且這些輸入作為單獨的元素添加到列表中?

[英]How do I make it so I can add multiple inputs to a function and those inputs are added to a list as separate elements?

到目前為止,這是我的代碼。

myUniqueList = []

def myFunction(input):
    if input in myUniqueList:
        return False
    else:
        myUniqueList.append(input)
        print(myUniqueList)
        return True
print(myFunction(2))

我希望能夠將多個輸入輸入到 myFunction 中,如果其中一個輸入等於另一個輸入,則首先檢查整個列表中的輸入,如果是,function 應該返回 false。 如果沒有,function 應該將這些輸入添加到列表中,每個輸入都作為一個單獨的元素,打印列表並返回 True。 我嘗試過使用 *args 之類的東西,但我只是卡住了。

第一個input是內置的 function,我不會覆蓋內置的。 至於檢查包容性,您可以在if語句中使用in關鍵字。 至於傳遞多個 arguments ,您可以使用星形打包,然后使用any if True 檢查包容性,只需使用 args 擴展列表並刪除重復項,只需使用dict.from_keys

myUniqueList = []

def myFunction(*args):
    if any(n in myUniqueList for n in args):
            return False
        else:
            myUniqueList.extend(dict.from_keys(args))
            print(myUniqueList)
            return True

也不是使用任何你可以使用的集合,它更有效:

if set(args) <= set(myUniqueList):
    ...
myUniqueList = [1 , 2]

def myFunction(*argv):
    for input in argv:
        if input in myUniqueList:
            return False
        else:
            myUniqueList.append(input)
            print(myUniqueList)
    return True

print(myFunction(2)) # False
print(myFunction(0, 4, 6)) # True

您可以使用 python 集來比較數組中是否包含重復值,如果其中不存在,則稍后將其添加到myUniqueList中。

myUniqueList = []

def myFunction(arr: list):
    if len(arr) != len(set(arr)):
        return False
    else:
        [myUniqueList.append(i) if i not in myUniqueList else None for i in arr]
        print(myUniqueList)
        return True

此更新后的代碼可讓您決定輸入列表的長度

myUniqueList = []
def myFunction(lst):
    for i in range(len(lst)):
        if lst[i] in myUniqueList:
            return False
        else:
            myUniqueList.append(lst[i])
    print(myUniqueList)
    return True

inputList = []
l = int(input("length of list: "))
for i in range(l):
    inputList.append(input(f"Enter element {i+1}: "))
print(myFunction(inputList))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM