2016-08-28 8 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

내가 @Neil에 동의하면 2 차원 배열을 원하는 것 같습니다 그래서 출력은 다음과 같이 될 수 있습니다. 여기에 또 다른 방법이 있습니다.

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 

업데이트는 여기에 대답 난수 파일 생성의 예입니다 주석을 감안할 때.

from random import randint 

#number of lines to create on the file 
n = 3 
with open('my_file.txt', 'w') as cout: 
    for i in xrange(n): 
    cout.write('{0}\n'.format(randint(1000, 10000))) #this is exclusive so it will only go as high as 9999 

각 줄마다 더 많은 숫자를 지정하려면 쓰기 방법의 텍스트 형식을 지정하십시오. 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을 인쇄 기능에 사용하십시오.

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 
관련 문제