2016-04-04 12 views
1

にに添付されているリストの並べ替えん:どのように私はこれを理解しようとしている私の脳をラッキングしてきた私は、Python 3.3

for line in test: 
    x = line.split() 
    y = int(x[1]) 
    x.append({"Average":str(y)}) 
    print(x) 

これはありませんが、それはラインの平均付加していることである:yを例えば、ジェームズ20 30 0 50 ように、それはその後、これは私の問題であることをユーザJames 0 0 0 0 {Average: 0} に印刷します: 私のテキスト文書は、このような複数の異なる名前と番号が含まれています

James 20 0 0 0 0 
Harrison 7 0 0 0 0 
George 9 0 0 0 0 

私もそれを作りました平均を計算するGES私は平均することを追加した場合は0 上記複数の番号がある場合:yが、私はそれがあった場合はそう彼らの「Y」 に応じて、リスト全体をソートしたい:

James 20 0 0 0 0 {Average: 20} 
Harrison 7 0 0 0 0 {Average: 7} 
George 9 0 0 0 0 {Average: 9} 
Oliver 10 5 6 0 0 {Average: 7} 

ことになるでしょう:

Harrison 7 0 0 0 0 {Average: 7} 
Oliver 10 5 6 0 0 {Average: 7} 
George 9 0 0 0 0 {Average: 9} 
James 20 0 0 0 0 {Average: 20} 

私は、各行1を追加して、私はそれが動作しませんsortコマンドを使用して、それを並べ替えるしようとした場合ので、いずれかによって、これを行う方法を見つけ出すことができません。私がやることは、最初の行を追加することです>印刷する>> 2行目を追加する···>そう... 追加された平均に基づいてこのリストをソートするにはどうすればよいですか?読んで助けてくれてありがとう!

答えて

0

テスト済み、うまくいきます。 append関数を使って、より多くのアイテムを再生することができます。

test = ["Harrison 20 0 0", "George 40 0 0", "Zohan 30 0 0"] 
foo = [] 
for line in test: 
    x = line.split() 
    y = int(x[1]) 
    foo.append({"Name":x[0],"Average":str(y)}) 
    print(x) 
sorted_x = sorted(foo) 
print sorted_x 
+0

AttributeError: 'list'オブジェクトに 'items'という属性がありません –

+0

['George'、 '40'、 '0'、 '0'、 '0'のようなテキストファイルに各行があります。 '、' 0 '、' 0 '、' 0 '{'平均 ':' 0 '{'平均 ':' 0 '}] '}] 等々。どのように私はこれを分割するだろうか? –

+0

この問題は、平均ではなく名前を並べ替えることである... –

0

問題は、ループで印刷していることです。結果を最初に照合し、ソートしてから印刷します。

+0

私はこれについてどうやって行くのか混乱しています。彼らは、このコードを複数回実行して保存し、ソートして印刷した場合、コードに数値+平均値を2回格納しないでしょうか?次に、印刷すると、コードを2回実行してからコードを再度実行すると平均が2回印刷されます。それをどうやって解決しますか?また、これについてどうやって行くのですか?ありがとう –

+0

なぜコードを複数回実行していますか? –

+0

複数の人が1台のコンピュータのコードを使用するため、複数の名前が使用されます。彼らは別々にテストされます。だから私の上記の例では、コードはそれらの値を得るために4回実行されていました。編集:私は理解できなかった私のコードのほんの一部を与えただけで、それはうまくいけば私の問題を解決するために必要でした。 –

関連する問題