2016-12-12 8 views
0

次の簡単なコードは、3つの要素のリストと、同じ行の各リスト内の要素の合計を生成します。ランダムに生成されたリストのリストの垂直要素を追加して表示するにはどうすればいいですか?

import random 
for i in xrange(3): 
    my_randoms1 = [random.randrange(1,6,1) for _ in range (3)] 
    print my_randoms1,"\t", sum(my_randoms1) 

今の質問は:どのように私はすべてのリストの垂直方向の対応する要素を追加し、[T1、T2、T3]として、すべてのリストのトップに、新しいリストで合計を表示することができますか?あなたはこれらのリストで何かをやっているつもりならおかげ

[T1,T2,T3] 

[1, 1, 2] 4 
[5, 3, 4] 12 
[5, 1, 5] 11 

答えて

1

は、おそらく可能性マトリックスにそれらを配置するためにnumpyのを使用して、データ構造のいくつかの並べ替えに保存したいです。

だけこれは変数のいくつかの並べ替えを持っていることですを行うための最も簡単な方法、(あなたのループ前に初期化)col_sums = [0,0,0]を言うと、それが生成されますよう、それぞれランダムなリストの値を追加します。あなたは、ネストされたループでこれを行うことができますが、あなたは空想取得したい場合、あなたは次のようなものを使用することができます。

col_sums = map(sum, zip(col_sums, my_randoms)) 

zip()あなた古い合計して、ランダムな値を取り、あなたのN番目を保持するタプルを与えます各リストの値は一緒に張り付いています。たとえば、最初の反復では、col_sums = [0,0,0]zip(col_sums, my_randoms)の場合、[(0,1), (0,1), (0,2)]となります。 map ping sumのリストには、[1, 1, 2]のような新しいリストがあります。これをすべての反復に入れると、最後に素敵な和ができます。

関連する問題