2016-10-11 20 views
-1

私は基本的なことをほとんど学んだが、私はかなり新しいPythonですが、私はcsvファイル(これまでのところ動作します)から読み込み、このCSVのデータをリストに追加する必要があります。私が不確かな部分は、これらのリストのうちの2つと120と100を使用しています。Pythonリスト未解決

例えばlist1の最初のスコアは55で、list2は51です。これらをまとめて106に等しいリストにしたい各リストに7つの異なる数字があるので、それぞれを時間で割ることができるものを追加します。

import csv 
list1 = [] 
list2 = [] 
with open("scores.csv") as f: 
reader = csv.reader(f) 
for row in reader: 

    list1.append(row[1]) 
    list2.append(row[2]) 
print (list1) 
print (list2) 

OUTPUT

['55', '25', '40', '21', '52', '42', '19'] 

['51', '36', '50', '39', '53', '33', '40'] 

次いで、それぞれ120および* 100で除算する必要が予想される出力(募集OUTPUT)

['106', '36', '90', '60', '105', '75', '59'] 

答えて

0

zipを参照してください。

for a, b in zip(list1, list2): 
    # .... do stuff 

ので、あなたのためかもしれない:

output = [((int(a)+int(b))/120)*100 for a, b in zip(list1, list2)] 
+0

aとbはどういう意味ですか? – 1230

+0

'zip'関数は2つのリストを歩き、最短のものを使い果たすまでそれぞれの値を返します。あなたの例では、最初の反復でa = '55'とb = '51'です。次に、2番目の繰り返しでは、a = '25'とb = '36'などとなります。 –

+0

百分率を整数にする最も良い方法は何ですか? – 1230

0

は、アカウントにご希望の計算を要する新しいリストを作成します。

>>> list1 = ['55', '25', '40', '21', '52', '42', '19'] 
>>> list2 = ['51', '36', '50', '39', '53', '33', '40'] 
>>> result = [(int(x)+int(y))/1.2 for x,y in zip(list1, list2)] 
>>> result 
[88.33333333333334, 50.833333333333336, 75.0, 50.0, 87.5, 62.5, 49.16666666666667] 
+0

リスト1と2はプログラムにハードコードされていませんが、それらはcsvファイルから来ています。私は3行目を使ってみました。[]と出力を返します。 – 1230

+0

@ 1230 - 最後に 'list1'と'あなたが記述した出力を印刷するlist2'は、示されているように結果に処理します。 – TigerhawkT3

+0

これは、小数点なしで88%、51%のように書式を設定するので、ちょうどint – 1230