파이썬 여러개의 리스트 나누기 질문합니다.
조회수 1306회
몇일 전 동일한 질문을 올렸었는데 한번만 더 질문 하겠습니다.
def random_chunk(li, min_chunk=1, max_chunk=3):
it = iter(li)
while True:
nxt = list(islice(it,randint(min_chunk,max_chunk)))
if nxt:
yield nxt
else:
break
li = [ 1, 2, 3, 4, 5]
b = [5,6,7,8,9]
divide = list(random_chunk(li))
d = []
for i in divide:
cut = len(i)
ad = b[:cut]
d.append(ad)
print d
#현재 print
[[1, 2], [3, 4, 5]]
[[5, 6], [5, 6, 7]] -> [[5, 6], [7, 8, 9]]로 되어야합니다.
위의 코드는 현재 제가 만든 함수 이며, 처음 리스트 li가 함수 random_chunk를 통해 나누어 지게되면 for문을 사용하여 각 리스트의 길이를 받고 그것을 다른 리스트에 적용 시키면 똑같이 나눠질줄알고 시도 한 것입니다. 하지만 위의 코드대로 하면 b의 리스트가 li의 리스트와 동일하게 나누어 지긴하지만 원소가 중복이 되어 나옵니다. 어떻게하면 중복이 되지않게끔 할 수 있을까요 ?
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
d = [] p = 0 for i in divide: cut = len(i) ad = b[p:p+cut] d.append(ad) p += cut print(d)
결과
[[1, 2], [3], [4, 5]] [[5, 6], [7], [8, 9]]
썩 맘에 드는 코드는 아니지만 최소한의 수정으로 해결했습니다.
댓글 입력