2016-05-08 26 views
1

だから私はいくつかのpythonコード持っている -「ValueError:アンパックする値が多すぎます」という理由は何ですか?

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言います。私は理解していないし、他のスレッドはこれを修正する方法を理解するにはあまりにも異なっています。

+0

コンマを削除します。真理値は「真」、偽は「偽」(大文字)です。 – enedil

+0

関数 'IsInArray'の目的は何ですか? – hek2mgl

答えて

2

ちょうどinを使用オペレータ:

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

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

あなたは3つの間違いがあります(余分なカンマ、True/False、および条件式)。多分これはあなたがコンマを削除し、第二引数(とTrue、ないtrue)としてリストを提供する場合*オペレータを削除

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

に何を意味するかです:

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

ありがとう、私はちょうど他の小文字をupercasesと交換する必要があります。 –

0

あなたは、余分なカンマを持っています削除する必要があります。この後

for v, in tab: 

を - trueやなどのPythonには、そのようなものは存在しないことに注意してください- それは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): 
関連する問題