
w[0] for w in work는 리스트 컴프리헨션(list comprehension)의 한 부분으로, 이 구문은 work 리스트 안의 각 리스트에서 첫 번째 값을 추출하는 간결한 방법입니다.
해당 방법에 대해서 오래 기억하기 위해서 작성한 페이지
N = int(input())
work = [] # 모든 입력을 저장할 리스트
for i in range(N):
temp = list(map(int, input().split())) # 입력받은 값을 임시 리스트에 저장
work.append(temp) # 각 입력을 work 리스트에 추가
first_hap = sum(w[0] for w in work) # w[0]는 for문의 w 이다
# 입력 값)
4
3 5
8 14
5 20
1 16
먼저, work 리스트는 여러 개의 리스트를 포함한 2차원 리스트입니다. 예를 들어, 다음과 같은 입력이 있다고 가정합니다:
work = [
[3, 5],
[8, 14],
[5, 20],
[1, 16]
]
여기서 work는 4개의 리스트를 포함하는 리스트입니다. 각 리스트는 두 개의 정수 값을 가지고 있습니다.
w[0] for w in work는 리스트 컴프리헨션의 일부로, 그 구조는 다음과 같습니다:
표현식 for 변수 in 반복가능한 객체
이를 해석해 보면:
for 변수 in 반복가능한 객체: work라는 리스트 안에서 각 요소(각각의 리스트)를 하나씩 꺼내 w에 할당합니다.
표현식: w[0]은 각 리스트 w의 첫 번째 요소를 의미합니다.
따라서, 리스트 컴프리헨션은 work 리스트의 각 리스트에서 첫 번째 요소를 추출하는 동작을 합니다.
이 부분은 work 리스트를 반복하는 구문입니다. work 안에 있는 각 리스트를 하나씩 가져와서 변수 w에 할당합니다. 예를 들어:
즉, for w in work는 work 리스트의 각 요소(리스트)를 순서대로 가져오는 역할을 합니다.
이 부분은 w라는 리스트의 첫 번째 요소를 의미합니다. w는 work 리스트의 각 요소(리스트) 중 하나이기 때문에, w[0]은 그 리스트의 첫 번째 요소를 나타냅니다. 예를 들어:
즉, w[0]은 각 리스트의 첫 번째 요소를 의미합니다.
이제 w[0] for w in work 구문을 전체로 보면:
[w[0] for w in work]
이것은 work 리스트 안의 각 리스트에서 첫 번째 요소를 추출하여 새로운 리스트를 만듭니다. 예를 들어:
work = [
[3, 5],
[8, 14],
[5, 20],
[1, 16]
]
first_elements = [w[0] for w in work]
위 코드에서 first_elements는 [3, 8, 5, 1]이 됩니다. 각 리스트의 첫 번째 요소들만 모아서 새로운 리스트를 만들었기 때문입니다.
만약 이 첫 번째 값들의 합을 구하고 싶다면, 이 리스트 컴프리헨션을 sum() 함수와 결합할 수 있습니다:
total_sum = sum(w[0] for w in work)
여기서 sum() 함수는 리스트 컴프리헨션이 만들어낸 값들을 모두 더해줍니다. 예를 들어, w[0] for w in work는 [3, 8, 5, 1] 리스트를 생성하므로, sum()은 3 + 8 + 5 + 1 = 17을 계산합니다.
요약
for w in work: work 리스트의 각 리스트를 w에 할당하면서 반복합니다.
w[0]: 각 리스트의 첫 번째 요소를 의미합니다.
sum(w[0] for w in work): 각 리스트의 첫 번째 요소들을 더한 값을 계산합니다.
이렇게 하면 각 리스트의 첫 번째 요소만을 추출하여 그 합을 구하는 동작을 효율적으로 수행할 수 있습니다.