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
<코드트리 설명 참고>