簡體   English   中英

為什么會出現“ ValueError:太多值無法解包”的情況?

[英]Why am I getting 'ValueError: too many values to unpack'?

所以我有一些python代碼-

list1 = ["Anthony", "Sean"] # define a table to use while testing

def IsInArray(val, *tab):   # define function to check
    for v, in tab:
        if v == val:
            return true
    return false

if IsInArray("Anthony", list1) == true:        # testing it
    print("Anthony is in list1")

if IsInArray("Charles", list1) == true:
    print("Charles is in list1")

但它說ValueError: too many values to unpack 我不明白,其他線程也太不同了,無法理解如何解決此問題。

如果您提供列表作為第二個參數(和True ,而不是true ),請除去逗號並除去*運算符:

# def IsInArray(val, *tab):
def IsInArray(val, tab):   # define function to check
    for v in tab:
        if val in v:
            return True
    return False

只需使用in運算符:

if "Anthony" in list1:        # testing it
    print("Anthony is in list1")

if "Charles" in list1:
    print("Charles is in list1")

您在函數中有3個錯誤(逗號, True / False和條件表達式)。 也許這就是你的意思

def IsInArray(val, *tab):   # define function to check
    for v in tab:
        if val in v:
            return True
    return False

您有多余的逗號應刪除:

    for v, in tab:

之后,請注意,Python中沒有truefalse這樣的東西TrueFalse

我可以發現新問題-即使有所有建議:

def IsInArray(val, *tab):   # define function to check
    for v in tab:
        if v == val:
            return True
    return False


IsInArray("Anthony", "Anthony", "Sean")
Out[6]: True

IsInArray("Anthony", ["Anthony", "Sean"])
Out[7]: False

為了將列表作為參數,請在定義中刪除星號( * ):

def IsInArray(val, tab):

暫無
暫無

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

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