[英]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中沒有true
或false
這樣的東西True
和False
。
我可以發現新問題-即使有所有建議:
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.