외우지말고 이해하라.

외우는 것 보단 이해해서 내것으로 만들어 활용하기

Another-Develop/Python

03 파이썬 - zip, map, join

hyg4196 2021. 4. 22. 11:48
반응형

1. zip

mylist = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] 
new_list = list(map(list, zip(*mylist))) 


  - 출력 결과 : [[1, 4, 7], [2, 5, 8], [3, 6, 9]] 
  python에서는 파이썬의 zip과 unpacking 을 이용하면 코드 한 줄로 리스트를 뒤집을 수 있습니다.

 

 

zip 의 추가기능 !

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

보통은 len과 index를 이용하여 각 원소에 접근합니다.

 

파이썬의 zip을 이용하면 index를 사용하지 않고 각 원소에 접근할 수 있습니다.

 

def solution(mylist):
    answer = []
    for number1, number2 in zip(mylist, mylist[1:]):
        answer.append(abs(number1 - number2))
    return answer

i번째 원소와 i+1번째 원소 - zip

i 번째 원소와 i+1 번째 원소를 number1, number2 에 넣고 계산

 

 

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

 

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

 

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

보통 사람들은 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))

 

 

input 을 사용할때도 map 을 이용하여 일괄 변환하여 사용하는 겨우도 많다

a, b = map(int, input().split())

 

 

3. Join - sequence 멤버를 하나로 이어붙이기

 

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

보통 사람들은 for 문을 이용해 원소를 하나씩 이어 붙입니다.

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

 

파이썬은 str.join() 으로 이 코드를 두 줄로 줄일 수 있습니다 .

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