본문 바로가기
IT/PYTHON

[26일차] map python programmers

by GWLEE 2022. 7. 26.

https://school.programmers.co.kr/learn/courses/4008/lessons/12730

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

모든 멤버의 type 변환하기 - map

이번 강의에서는 Iterable의 모든 멤버의 type을 변환하는 방법을 알아봅시다.

예시)

  • 문자열 배열 ['1', '100', '33']을 정수 배열 [1, 100, 33]로 바꾸기
  • 부동소숫점 튜플 (3.14, 3.5, 22.6)을 정수 배열 (3, 3, 22)로 바꾸기

다른 언어에서는..(또는 이 기능을 모르시는 분은)

보통 사람들은 for 문을 이용해 원소의 타입을 하나씩 바꿉니다.

list1 = ['1', '100', '33']
list2 = []
for value in list1:
    list2.append(int(value))
파이썬에서는

파이썬의 map을 사용하면 for 문을 사용하지 않고도 멤버의 타입을 일괄 변환할 수 있습니다.

list1 = ['1', '100', '33']
list2 = list(map(int, list1))

https://school.programmers.co.kr/learn/courses/4008/lessons/12731

 

 

sequence 멤버를 하나로 이어붙이기 - join
알고리즘 문제를 풀다보면, 시퀀스의 멤버들을 하나의 string으로 이어붙여야 할 때가 있습니다

예시)

문자열 배열 ['1', '100', '33']을 이어 붙여 문자열 '110033' 만들기
정수형 튜플 (3, 22, 91)을 이어붙여 문자열 '32291' 만들기
다른 언어에서는..(또는 이 기능을 모르시는 분은)
보통 사람들은 for 문을 이용해 원소를 하나씩 이어 붙입니다.

my_list = ['1', '100', '33']
answer = ''
for value in my_list:
    answer += value


파이썬에서는
파이썬의 str.join(iterable)을 사용하면 이 코드를 두 줄로 줄일 수 있습니다 .

my_list = ['1', '100', '33']
answer = ''.join(my_list)

 

삼각형 별찍기 - sequence type의 * 연산

이번 강의에서는 곱셈 연산 *를 통해 문자열을 반복하는 방법을 배웁니다.

예시)

  • 'abc', 'abcabc', 'abcabcabc', 'abcabcabcabc ...' 과 같이 'abc'가 n번 반복되는 문자열 만들기
  • [123, 456, 123, 456, 123, ...] 과같이 123, 456이 n번 반복되는 리스트 만들기

다른 언어에서는..(또는 이 기능을 모르시는 분은)

보통 사람들은 for 문을 이용해 기존 스트링에 'abc'를 여러 번 붙이는 번거로운 일을 하지요. 이렇게요!

answer = ''
n = 어쩌고
for _ in range(n):
    answer += 'abc'
파이썬에서는

파이썬에서는 *연산자를 사용해 코드를 획기적으로 줄일 수 있습니다.

n = 어쩌고
answer = 'abc' * n

또, * 연산자를 이용하면 [123, 456, 123, 456, 123 ...] 과같이 123, 456이 n번 반복되는 리스트를 만들 수 있습니다.

n = 어쩌고
answer= [123, 456] * n

곱집합(Cartesian product) 구하기 - product

 

이번 강의에서는 iterable으로 곱집합을 구하는 방법을 알아봅니다.

예시) 두 스트링 'ABCD', 'xy' 의 곱집합은 Ax Ay Bx By Cx Cy Dx Dy 입니다.


다른 언어에서는..(또는 이 기능을 모르시는 분은)

보통 사람들은 for 문을 이용해 두 iterable의 원소를 하나씩 곱해갑니다.

iterable1 = 'ABCD'
iterable2 = 'xy'
iterable3 = '1234'

for value1 in iterable1:
    for value2 in iterable2:
        for value3 in iterable3:
            print(value1, value2, value3)
파이썬에서는

itertools.product를 이용하면, for 문을 사용하지 않고도 곱집합을 구할 수 있습니다.

import itertools

iterable1 = 'ABCD'
iterable2 = 'xy'
iterable3 = '1234'
print(list(itertools.product(iterable1, iterable2, iterable3)))

https://velog.io/@pengu/%ED%8C%8C%EC%9D%B4%EC%8D%AC%EC%9D%84-%ED%8C%8C%EC%9D%B4%EC%8D%AC%EB%8B%B5%EA%B2%8C-Itertools-Collections-%EB%AA%A8%EB%93%88 블로그 참고,,,!

'IT > PYTHON' 카테고리의 다른 글

[27일차] for문 if문 한 번에 쓰기  (0) 2022.07.27
[27일차] 데이터 시각화 numpy / pandas  (0) 2022.07.27
[9일차] MySQL + PYTHON  (0) 2022.07.01
[5일차] generate  (0) 2022.06.24
[5일차] 데코레이터(Decorator)  (0) 2022.06.24

댓글