백준 문제를 풀다가, 리스트를 내가 원하는 갯수대로 쪼개는 방법을 알고 싶어 이것저것 해봤습니다.
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에 대한 이해가 아직 부족해서, 제가 참고한 다른 분의 블로그 링크를 공유합니다!
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)]
'''
'python3 > 문법' 카테고리의 다른 글
[Python 문법] Python 기초 문법 (0) | 2022.01.15 |
---|---|
[python문법] int를 str로 바꿔서 출력하기 (0) | 2022.01.15 |
[python문법] input() vs sys.stdin (0) | 2022.01.13 |
[python문법] def 함수 값 여러 개 return하기 (0) | 2022.01.13 |