Python에서 시퀀스 동시 순회하기

여러 시퀀스를 한 번에 순회하려면 zip 함수를 적용할 수 있습니다. 이때 모든 시퀀스의 요소는 동일한 인덱스를 가진 요소들로 구성된 튜플 형태로 출력됩니다.

예시

두 개의 리스트가 있다고 가정해 봅시다:

pythonlst1 = ['a', 'b', 'c']
lst2 = [1, 2, 3]

이들의 요소를 쌍으로 출력해 봅시다:

pythonfor el in zip(lst1, lst2):
  print(el)

실행된 코드의 결과:

python('a', 1)
('b', 2)
('c', 3)

예시

다른 유형의 시퀀스도 순회할 수 있습니다. 집합과 튜플을 루프와 zip 함수에 통과시켜 봅시다:

pythonst = {'a', 'b', 'c'}
tlp = (1, 2, 3)

for el in zip(st, tlp):
  print(el)

실행된 코드의 결과:

python('a', 1)
('b', 2)
('c', 3)

예시

한 시퀀스의 길이가 다른 시퀀스보다 길다면, 더 짧은 시퀀스의 요소 수만큼만 순회됩니다:

pythonlst1 = ['a', 'b', 'c', 'd', 'e']
lst2 = [1, 2, 3, 4]

for el in zip(lst1, lst2):
  print(el)

실행된 코드의 결과:

python('a', 1)
('b', 2)
('c', 3)
('d', 4)

예시

zip 함수를 사용하여 세 개의 시퀀스도 순회할 수 있습니다. 이를 위해 함수 매개변수에 모든 시퀀스를 쉼표로 구분하여 나열합니다:

pythonlst1 = ['a1', 'b1', 'c1']
lst2 = ['a2', 'b2', 'c2']
lst3 = ['a3', 'b3', 'c3']

for el in zip(lst1, lst2, lst3):
  print(el)

실행된 코드의 결과:

python('a1', 'a2', 'a3')
('b1', 'b2', 'b3')
('c1', 'c2', 'c3')

실전 문제

Задание 1

두 개의 리스트가 주어집니다:

pythontst1 = [1, 3, 5]
tst2 = [2, 4, 6]

이들의 요소를 튜플 형태로 쌍으로 출력하세요.

Задание 2

두 개의 리스트가 주어집니다:

pythontst1 = ['a', 'b', 'c']
tst2 = ['d', 'e', 'f']

이들로부터 다음 리스트를 얻으세요:

python['a', '1', 'b', '2', 'c', '3']
Задание 3

세 개의 리스트가 주어집니다:

pythontst1 = [11, 12, 13, 14]
tst2 = [21, 22, 23, 24]
tst3 = [31, 32, 33, 34]

이들 리스트의 해당 요소를 더하고 결과를 새 리스트에 기록하세요. 합산은 다음 원칙에 따라 진행됩니다:

python[
  11 + 21 + 31,
  12 + 22 + 32,
  13 + 23 + 33,
  14 + 24 + 34,
]