2016-08-28 7 views
1

は現在、この出力を探して、この出力各ループの後に新しい行を追加する方法は?

[1, 1, 3, '\n'] 
[1, 1, 3, '\n', 7, 7, 7, '\n'] 

を取得

[1, 1, 3] 
[7, 7, 7] 

コード:

import random 
    my_list=[] 
    n = 3 
    m = 1 
    while m < 10: 
    for i in range(n): # repeats the following line(s) of code n times 
     my_list.append(random.randrange(0,9)) 
    my_list.append("\n") 
    print(my_list) 
    m = m+1 
+0

少し具体的になりますか?印刷中に結果が一定の様子を見せたいですか?私はあなたが2次元配列を望むように見えます。 – reticentroot

+0

@reticentrootテスト用の乱数ファイル(3485,6758,8094)を作成しようとしましたが、新しい行の4つの数字の各セットです。例のおかげで – scorpionz

答えて

2
import random 
n = 3 
m = 0 
my_list = [] 
while m < 10: 
    my_list.append([]) 
    for i in range(n): 
     my_list[m].append(random.randrange(0, 9)) 
    print(my_list[m]) 
    m = m + 1 

このコードはmy_list内のサブリストを作成し、各サブリストごとの繰り返しをプリントアウト。だからあなたの出力は次のようなものかもしれません:

[0, 4, 8] 
[3, 1, 5] 
... 
[9, 2, 5] 

しかしmy_listは、このようなすべてのサブリストを格納します:[[0, 4, 8], [3, 1, 5], ..., [9, 2, 5]]

2

私はあなたが2次元配列をしたいように見えます@Neilに同意します。これを行う別の方法があります。

from random import randint 

my_list = [[randint(1, 11) for i in xrange(10)] for j in xrange(randint(5, 10))] 

これにより、0〜9の数値オブジェクトが5〜9回作成されます。 [[2,3,4,5 ...]、[1,2,2,3 ...] ...]

次にオブジェクトを繰り返して、必要な方法で印刷しますあなたはここで答えたコメントを考慮

for item in my_list: 
    print item 

UPDATE

は、乱数ファイル生成器の一例です。

各行の数字を増やしたい場合は、テキストを書き込みメソッド内にフォーマットします。 E.G

cout.write('{0}, {1}\n'.format(randint(1000, 10000), randint(1000, 10000))) 
+0

ありがとうございます。 – scorpionz

+0

重複した数字を削除するロジックを追加する方法はありますか? – scorpionz

+0

リストを使用する代わりに、セットを使用します。 – reticentroot

1

my_list = []を外側のループの内側に置き、そのたびに再初期化します。また、改行が必要ない場合は、それをmy_listに追加しないでください。すべての出力を同じ行に出力したい場合は、オプションのarg endをprint関数に使用してください。

import random 
n = 3 
m = 1 
while m < 10: 
    my_list = [] 
    for i in range(n): 
     my_list.append(random.randrange(0,9)) 
    print(my_list, end="") 
    m += 1 
関連する問題