2016-07-14 2 views
1

ちょっと:)私はPythonの初心者です。私は返り値から大括弧を削除する方法を知っています。エラーが表示されるおっと、もう一度やり直してください。中央値([1])は、[1]の代わりに1を返しました。これらの角括弧を削除する方法は?残りのコードはOKか、それとも変更が必要ですか? これは私のコードです:Practiceが完璧になるように中間値

return newlist 

リストのコピーを返し、その後、あなたの関数の残りの部分を実行していない:

def median(List): 
    newlist = [] 
    for num in List: 
     newlist.append(num) 
    return newlist 
    newlist.sort() 

    if len(newlist) % 2 == 1: 
     return float(newlist[len(newlist)/2]) 
    else: 
     return float((newlist[len(newlist)/2] + newlist[len(newlist)/2 + 1]))/2.0 

答えて

0

は、この行を削除します。

EDIT

あなたの現在のコードとの大きな問題は、アレイが偶数長であるとき、あなたは間違ったインデックスを選択しているということです。並べ替えを取得する

  1. 使用sorted(...)

    カップル他の小さな提案(あなたは要素1と2を平均化する必要があるとき、長さ4の配列のために、あなたは、要素2と3を平均化しています)リストのコピー。

  2. //を整数除算に使用すると、コードがPython 3(Python 2と同様)で正しく動作するようになります。
  3. 変数名に「スネークケース」(単語間の下線付きの下段)を使用します。

更新コード:迅速かつ正確な応答のための

def median(lst): 
    new_list = sorted(lst) 

    if len(new_list) % 2 == 1: 
     return float(new_list[len(new_list) // 2]) 
    else: 
     return (new_list[len(new_list) // 2 - 1] + 
       new_list[len(new_list) // 2])/2.0 
+0

ありがとう!あなたの答えのこの部分に関するもう1つの質問: "(長さ4の配列の場合、要素1と要素2を平均する必要がある場合、要素2と要素3を平均します。リストのインデックス付けは文字列のインデックス付けとまったく同じなので、要素1と2を平均する必要があります。 lst = [2、4、7、10]私のリストの最初の整数がインデックス0を持つことを意味します、そうですか?実際には、あなたの提案についてもう一つのことがあります。なぜ、「スネークケース」を使うのがとても重要なのでしょうか?私は間違ってはいません、私はちょっと好奇心です;) – Konradek

+0

正確には、配列インデックスは0から始まります。スネークケースは単にPythonコミュニティのスタイル規約です。これを使うと、他のPython開発者にとってコードを読みやすくなります。 – smarx

+0

答え:ありがとう、ありがとう:) Pythonのどのコースが、私がCodecademyコースを終えた後に開始するように勧めていますか? – Konradek

関連する問題