Python/[개념 및 문법]

[python] list 리스트_리스트의 원소 합 구하기 map 함수

hyunnn_00 2023. 6. 28. 09:24

한 줄에 공백을 사이에 두고 10개의 숫자가 주어졌을 때, 이 숫자들의 합을 구하는 코드를 작성해보자.

 

공백을 사이에 두고 숫자가 주어지는 경우 input( ).split( ) 으로 입력받을 수 있다.

arr = input().split()
print(arr)

>> 3 5 7
['3', '5', '7']

위의 코드를 실행해보면, 각 원소의 type이 int가 아닌 str인 것을 알 수 있다.

 

따라서 10개 원소의 합을 구하는 과정은 다음과 같다.

arr = input().split()
sum_val = int(arr[0]) + int(arr[1]) + ... + int(arr[9])
print(sum_val)

 

위의 코드를 for loop을 이용하여 더 쉽게 바꿀 수 있다.

arr = input().split()

sum_val = 0
for i in range(10):
    sum_val += int(arr[i])
print(sum_val)

---------------------------------------------------------------
>> 1 5 2 7 4 8 7 9 8 7
58

리스트에 있는 원소 순차적으로 탐색하기

elem 위치에 arr 안에 있는 원소들이 순차적으로 하나씩 들어감

arr = [1, 2]

for elem in arr:
    print(elem)

>>
1
2

 

10개의 숫자를 한 줄에 공백을 사이에 두고 입력 받는 경우 list로 변환하였을 때 원소의 type이 문자열이기 때문에 int로 변경해주어야 함 => map 함수를 이용해서 리스트에 있는 원소의 type을 모두 변환하자.

 

arr = list(map(int, input().split()))
print(arr)

>> 1 3
[1, 3]

 

한 줄에 n, m 2개의 숫자를 공백을 사이에 두고 입력 받는 경우에는 tuple과 map을 이용해 볼 수 있다.

tuple로 map 함수를 감싸면, n, m에 각 숫자를 나눠 할당해 줄 수 있다.

n, m = tuple(map(int, input().split()))
print(n, m)

>> 1 3
1 3

 

<코드트리 설명 참고>