繁体   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