2017-03-25 24 views
0

私は、この課題が私に出力を求めていることを正確に理解するのに苦労しています。私はこのPython関数を構築しましたが、教授が望んでいることはしていません。私は非常に混乱しています。この関数は何を出力する必要がありますか?

が関数extract_negativesを定義します:ここで

は、命令で最初の引数は、XSは、整数を含みます。 xsで見つかった負の整数をすべて削除し、2番目の引数new_homeに追加します。ネガを受け取ったリストへの参照を返さなければなりません。 2番目の引数が指定されていない場合は、抽出されたすべてのネガのリストを作成して返す必要があります。

この関数のシグネチャの特定は、タスクの一部です。注意:new_homeにはどのようなデフォルト値を使用しますか? で同じコーディングセッションを複数回呼び出すとどうなりますか? .insert()、.pop()、.append()などのメソッドを使用します。

同時にリストを繰り返して更新する必要がある場合があります。ヒント:前から後へリストをトラバースする必要があるが、必ずしも次のインデックス位置に行きたいとは限らない場合は、ループが非常に便利になる可能性があります。ここ

所与の例である:

入力:XS = [1、-22,3、-44、-5,6,7] extract_negatives(XS) yeildsは:[-22 、-44、-5] #return陰性のリスト XS
[1、3、6、7]ここXS

から#removeネガ私は組み込み関数である:

def extract_negatives(xs,new_home): 
    new_home=[] 
    for num in range(len(xs)): 
     if xs[num] <0: 
      new_home.append(xs[num]) 
    return new_home 

私は教授に尋ねようとしましたが、それは数日で応答がありませんでした。多分あなたは何が尋ねられているのかを理解するのを助けることができますか?

答えて

1

私はそれが手遅れでなければ、これは、あなたが知っておく必要がある主なものかもしれないと思います。このコードは、渡された位置パラメータの数とその値の決定方法を決定する方法を示しています。あなたのケースでは、1つのパラメータしかない場合は、2つ目のパラメータのリストに値を追加する必要がある場合は、新たに結果リストを作成する必要があります。

>>> def extract_negatives(*args): 
...  print (len(args)) 
...  
...  if len(args)==1: 
...   print (args[0]) 
...  elif len(args) == 2: 
...   print (args[0], args[1]) 
...  else: raise RuntimeError('Incorrect number of parameters') 
...   
>>> extract_negatives([1,2,3]) 
1 
[1, 2, 3] 
>>> extract_negatives([1,2,3], [1,0]) 
2 
[1, 2, 3] [1, 0] 
>>> extract_negatives([1,2,3], [1,0], [5,6]) 
3 
Traceback (most recent call last): 
    File "<interactive input>", line 1, in <module> 
    File "<interactive input>", line 8, in extract_negatives 
RuntimeError: Incorrect number of parameters 
1

私が理解したことは、2つのシナリオがあることです。最初は引数が1つしか渡されないので、new_homeを作成して返す必要があります。次に、new_homeを2番目の引数として取得し、ネガを追加するだけです。

さらに、あなたのコードが今行っているとは思わないxsからネガを削除する必要があります。ここで、可変引数のサイズの一見のため

Can a variable number of arguments be passed to a function?

+0

第2引数が渡された場合の動作方法を理解できません。私がそれを含めるならば、それはすべてに影響しないでしょうか? – kg123

+0

私は新しい引数で自分のコードを更新しました。 – kg123

+0

あなたはまだxsからネガを取り除いていません。可変引数サイズの場合、これを見ることができます:http:// stackoverflow。com/questions/919680/can-a-variable-number-of-a-function-passed-to-a-function –

関連する問題