본문 바로가기
python3/문법

[python 문법] 리스트 쪼개기 및 for문을 이용한 combinations

by MeaninGood 2022. 1. 16.

백준 문제를 풀다가, 리스트를 내가 원하는 갯수대로 쪼개는 방법을 알고 싶어 이것저것 해봤습니다.

 

 

1. for문과 append로 만들기

arr = [1, 2, 3, 4, 5, 6]
n = 2
div_li = []
for i in range(0, len(arr), n) :
    div_li.append(arr[i:i+n])
print(div_li)




''' (출력)
[[1, 2], [3, 4], [5, 6]]
'''

 

 

2. def 함수에서 yield로 만들기

arr = [1, 2, 3, 4, 5, 6]

def div_li(l, n) :
    for i in range(0, len(l), n) :
        yield l[i:i+n]
        

n = 2

result = list(div_li(arr, n))
print(result)



'''(출력)
[[1, 2], [3, 4], [5, 6]]
'''

 

* yield에 대한 이해가 아직 부족해서, 제가 참고한 다른 분의 블로그 링크를 공유합니다!

yield 설명

 

파이썬의 yield 키워드와 제너레이터(generator)

Engineering Blog by Dale Seo

www.daleseo.com

 

 

 

3. 얼떨결에 이것저것 하다가 찾게 된 combinations를 for문으로 만드는 방법

arr = [1, 2, 3, 4, 5, 6]
num = []
for i in range(3) :
    for j in arr[i + 1:] :
        num.append((arr[i], j))
print(num)


'''(출력)
[(1, 2), (1, 3), (1, 4), (1, 5), (1, 6), (2, 3), 
(2, 4), (2, 5), (2, 6), (3, 4), (3, 5), (3, 6)]

'''