2017-11-29 3 views
0

'funCall'関数のリストから単一の値を取得するのに問題があります。どのように* argsのインデックスを作成するのか?* argsの中に含まれるリストをどのように索引付けするのですか?

def funCall(*args): 
    ans = args[0] 
    print(ans) 

def roll(a_list): 
    check = [] 
    for i in a_list: 
     if a_list.count(i) > 2: 
      check.append(i) 
    print(check) 
    if len(check) == 3: 
     funCall(check) 


roll([3, 2, 3, 5, 3]) 
+0

なぜ最初に '* args'を使用していますか? – user2357112

+0

'args'はタプルです。ここのトラブルは何ですか? –

+0

私の答えがあなたの質問に答えた場合、それを受け入れてください。もしあなたがまだ混乱しているもののコメントを追加してください。 –

答えて

0

あなたはそうのようなfunCallcheckを渡す必要があります:

if len(check) == 3: 
    funCall(*check) 

は今、funCallで、ansは、あなたがどのように*args作品誤解check

0

内の最初の要素を格納します。 Argsはタプルであり、メソッドに渡された名前のないすべての引数を含みます。例えば

は、この想像:

def foo(*args): 
    print(args) 

foo([1,2,3], True, 1) # Prints ([1,2,3], True, 1,) 
foo(*[1,2,3]) # Prints (1,2,3,) 

argsは、渡された引数をすべて含むタプルで、あなたのケースでargs[0]はあなたのリストの最初のインデックス、渡されただけで最初のものではありませんので。

タプルに項目値を入力する場合は、接頭辞*foo(*[1, 2, 3,]))を前に付けて渡すことができます。それは(1, 2, 3,)を出力し、あなたのインデックス0はあなたが渡したリストの最初のアイテムになります。

関連する問題