05의 개발 계발

[알고리즘] [Python] 배열 두 배 만들기 본문

알고리즘

[알고리즘] [Python] 배열 두 배 만들기

생각하는 코댕이 2023. 4. 3. 16:57
728x90

배열 두 배 만들기

내 코드

def solution(numbers):
    answer = [2*x for x in numbers] #리스트 컴프리헨션
    return answer

흠..터레스팅 코드

# 1번

def solution(numbers):
    return list(map(lambda x: x * 2, numbers))
#2번

import numpy as np	# numpy를 np라고 별칭

def solution(numbers): 
    result = (np.array(numbers) * 2)	# 리스트 → 배열(np 객체)화 
    answer = result.tolist()			# 배열 → 리스트
    return answer

새로 알게된 것   |   2번 코드에서

import numpy as np # numpy를 np라고 별칭

numpy 모듈 : 배열(array)과 관련된 기능을 모아둔 모듈
as : 별칭을 주어 코딩시 편의성을 제공


    result = (np.array(numbers) * 2)	# 리스트 → 배열(np 객체)화

 

.array() : 리스트를 배열로 변환 해준다. 변환 후 연산을 하면 각 요소에 연산값이 적용된다. ex) [1,2]*2 = [2,4]
               단, 변환된 배열은 numpy class의 객체로 인식되므로 type은 class이고, type 변환이 필요하다.


    answer = result.tolist()			# 배열 → 리스트

.tolist() : 배열을 리스트로 변환 해준다. 변환 후 연산을 하면 리스트 자체에 연산값이 적용된다. ex) [1,2]*2 = [1,2,1,2]
              type 이 list로 나온다.


1) map 과 lambda를 이용한 풀이를 보았다. 효율적인지는 모르겠지만, 저렇게 사용도 가능하다는 걸 보았다.
2) 새롭게 알게된 numpy를 활용한 코딩을 해보았다. type의 문제가 있어 처음에 해맸지만,
     class와 type, numpy에 대한 이해가 있다면 큰 문제가 되지 않을 것 같다.

728x90