2016-11-12 1 views
1

ランダムな整数を含む2つの異なるリストabに到達する最短の方法は何ですか?異なるランダムリストを2つの変数に割り当てる最短の方法は何ですか?

私は現在持っている:

a=b=[randint(0,30)for x in range(10)] 

を使用して

(a,b)=([randint(0,30)for x in range(10)][randint(0,30)for x in range(10)]) 

または

a=[randint(0,30)for x in range(10)] 
b=[randint(0,30)for x in range(10)] 

は、2つの同一のリストを生成します。

これを行う方法はありますか?

+4

を、あなたは文字で充電されていますか?リスト生成を関数に抽出して2回呼び出すこともできますが、2番目のバージョンについては何もひどいことはありません。 – jonrsharpe

+0

「2つの同一リストを作成する」とは、何が起こっているのか誤解しています。コードは1つのリストを生成します。そのリストを参照する名前は2つだけです。 – jasonharper

答えて

2

あなたはrandom.sample使用することができます。

from random import sample 

r = range(0,30) 
a, b = sample(r, 10), sample(r, 10) 
+1

これは全く置換されていないサンプルです。 – jonrsharpe

+0

@jonrsharpeはい割り当ては同じですが、それらの2つのリストがどのように取得されるかは異なります(より短い)。 – Zety

+0

私はあなたが私の意見を理解しているかどうか分かりません。元のバージョンでは '[29、5、29、...]'のようなリストを作成できます。それは単なる別の方法ではありませんが、異なる出力*につながります。受諾は、これはOPのための契約の遮断者ではない(または彼らはそれを考えていない)ことを示唆していますが、私は同じような問題を抱えている他のユーザーには注意すべきだと考えました。 – jonrsharpe

関連する問題