파이썬 random_chunk 관련 질문입니다.
조회수 674회
2개의 리스트를 입력 받고 셔플 뒤 랜덤하게 자르는 함수를 만들고 있습니다. 랜덤이 되었을 때 위치를 따라가는 것 까진 했지만, 자르는 과정에서 어떻게 같이 잘라야할지 잘 몰라 질문하게 되었습니다.
def random_chunk(li,b, min_chunk=1, max_chunk=3):
it = iter(li)
bb = iter(b)
while True: #2개의 리스트가 같은 크기로 잘렸으면 좋겠습니다.
nxt = list(islice(it,randint(min_chunk,max_chunk)))
if nxt:
yield nxt
else:
break
#example
a = [1,2,3,4]
b = [5,6,7,8]
slice = list(random_chunk(a,b))
#print
a = [[2,1], [4,3]]
b = [[6,5], [8,7]]
or
a = [[3,2,1],[4]]
b = [[7,6,5],[8]]
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
아래코드 참고해보시구요
각각의 리스트를 각각 작업하면 어떨까합니다.
import random a = [1,2,3,4] b = [5,6,7,8] random.shuffle(a) random.shuffle(b) cnt = 3 print [a[n:n + cnt] for n in range(0, len(a), cnt)] print [b[n:n + cnt] for n in range(0, len(b), cnt)] cnt = 2 print [a[n:n + cnt] for n in range(0, len(a), cnt)] print [b[n:n + cnt] for n in range(0, len(b), cnt)]
- 온라인 테스트는 아래 링크에서 가능합니다.
https://pyfiddle.io/fiddle/fa04dada-6877-4aea-a118-1a950ee2a545/?i=true
- 답변감사합니다. 제가 만든 함수에서 Randint 값만 똑같이 받을 수 있다면 여러개 리스트를 자를 수 있을거라 생각하는데 그 방법은 없을까요 ? 알 수 없는 사용자 2018.11.28 19:39
- 랜덤값이니 똑같이 나올확률은 적구요.한번만 해서 변수에 넣고 사용하면 되지 않을까요? 정영훈 2018.11.28 20:00
- 감사합니다! 알 수 없는 사용자 2018.11.28 22:00
- 온라인 테스트는 아래 링크에서 가능합니다.
댓글 입력