2016-09-24 10 views
0

私は2つのリストを生成するこのコードを持っています。 1つのリストは1-30になり、もう1つは30-1になります。 some_list2の各要素をsome_listの各要素でどのように分けることができますか。これは次のようなものになります:1/302/29、そうです。私は新しいリストに各ディビジョン値を格納することを考えていました.1つのディビジョンと1つの新しいエレメントです。ここでリスト間のリスト分割

は私が持っているものです。

some_list = [] 
some_list2 = [] 

for i in reversed(range(1, 31)): 
    a = i 
    some_list.append(a) 
for x in range(1,31): 
    b = x 
    some_list2.append(b) 

私は、全体として別のものつのリストを分割しようとした、と私は部門のループのために別のを見て、私はこだわっています。私は途中で練習するためにこれをやっています。

あなたは zip、一緒にリストをINGのタプル要素を開梱し、分割することによって、リスト内包表記でこれを行うことができ
+1

あなたが書いたコードは 'some_list = list(range(1、31))'、 'some_list2 = some_list [:: - 1]'に単純化することができます。 iteratingと 'append'ing(' 'append'ingが愚かで、' 'i''を直接追加するだけでよい)の前に' 'に代入することによって構築しなければならない場合でも、 – ShadowRanger

答えて

2

r = [i/j for i,j in zip(some_list2, some_list)] 

を、これは基本的に、(some_list2[i], some_list[i])値のタプルを作成しijに割り当て、次に実行分裂。

rが今の結果を保持しているリストである:

print(r) 
[0.03333333333333333, 
0.06896551724137931, 
0.10714285714285714, 
0.14814814814814814, 
0.19230769230769232, 
... 
4.166666666666667, 
5.2, 
6.75, 
9.333333333333334, 
14.5, 
30.0] 

また、あなたはまた、operatorモジュールからmaptruedivで、機能的な方法でこれを行うことができます:

from operator import truediv 

r = list(map(truediv, some_list2, some_list)) 

truedivです'/'演算子の呼び出し可能な形式であり、このような用途のために定義されています。 mapは、some_list2some_listの要素をとり、truediv関数に適用します。 list呼び出しをラップして、マップ結果をリストに展開します。

+0

私はそれが好きです!詳細な答えをありがとう。 –

関連する問題