๐Ÿ”ฌ Explore/ํŒŒ์ด์ฌ

[ํŒŒ์ด์ฌ] zip() ํ•จ์ˆ˜

devCloud 2024. 10. 25. 21:19
728x90

zip()

ํŒŒ์ด์ฌ์˜ zip() ํ•จ์ˆ˜๋Š” ์—ฌ๋Ÿฌ ์ดํ„ฐ๋Ÿฌ๋ธ”(iterable)(๋ฆฌ์ŠคํŠธ, ํŠœํ”Œ ๋“ฑ)์„ ๋™์‹œ์— ์ˆœํšŒํ•˜๋ฉด์„œ, ๊ฐ ์ดํ„ฐ๋Ÿฌ๋ธ”์˜ ๋™์ผํ•œ ์ธ๋ฑ์Šค์— ์žˆ๋Š” ์š”์†Œ๋“ค์„ ํŠœํ”Œ๋กœ ๋ฌถ์–ด ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜์ด๋‹ค. ์ฆ‰, ์—ฌ๋Ÿฌ ์‹œํ€€์Šค์˜ ์š”์†Œ๋“ค์„ ํ•˜๋‚˜์”ฉ ์ฐจ๋ก€๋Œ€๋กœ ์ง์ง€์–ด์ค€๋‹ค.

 

zip() ๊ธฐ๋ณธ ๊ตฌ๋ฌธ

zip(iterable1, iterable2, ...)

 

  • ์ž…๋ ฅ : ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ดํ„ฐ๋Ÿฌ๋ธ” ๊ฐ์ฒด (์˜ˆ: ๋ฆฌ์ŠคํŠธ, ํŠœํ”Œ ๋“ฑ).
  • ์ถœ๋ ฅ : ๊ฐ ์ดํ„ฐ๋Ÿฌ๋ธ”์˜ ์š”์†Œ๋“ค์„ ๋ฌถ์€ ํŠœํ”Œ๋กœ ์ด๋ฃจ์–ด์ง„ ์ดํ„ฐ๋ ˆ์ดํ„ฐ.

 

์‚ฌ์šฉ ๋ฐฉ๋ฒ•

1๏ธโƒฃ ๋ฆฌ์ŠคํŠธ ๋‘ ๊ฐœ๋ฅผ ๋ฌถ๊ธฐ

list1 = [1, 2, 3]
list2 = ['a', 'b', 'c']

zipped = zip(list1, list2)
print(list(zipped))

 

์ถœ๋ ฅ ๊ฒฐ๊ณผ

[(1, 'a'), (2, 'b'), (3, 'c')]
  • ๋ฆฌ์ŠคํŠธ list1๊ณผ list2์˜ ๊ฐ ์š”์†Œ๊ฐ€ ํŠœํ”Œ๋กœ ๋ฌถ์—ฌ ๋ฐ˜ํ™˜๋œ๋‹ค.

 

2๏ธโƒฃ ์—ฌ๋Ÿฌ ์ดํ„ฐ๋Ÿฌ๋ธ” ๋ฌถ๊ธฐ

list1 = [1, 2, 3]
list2 = ['a', 'b', 'c']
list3 = [True, False, True]

zipped = zip(list1, list2, list3)
print(list(zipped))

 

์ถœ๋ ฅ ๊ฒฐ๊ณผ

[(1, 'a', True), (2, 'b', False), (3, 'c', True)]
  • ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ฆฌ์ŠคํŠธ๋‚˜ ํŠœํ”Œ๋„ zip()์œผ๋กœ ๋ฌถ์„ ์ˆ˜ ์žˆ๋‹ค.

 

3๏ธโƒฃ ๊ธธ์ด๊ฐ€ ๋‹ค๋ฅธ ์ดํ„ฐ๋Ÿฌ๋ธ”

list1 = [1, 2]
list2 = ['a', 'b', 'c']

zipped = zip(list1, list2)
print(list(zipped))

 

์ถœ๋ ฅ ๊ฒฐ๊ณผ

[(1, 'a'), (2, 'b')]
  • zip() ํ•จ์ˆ˜๋Š” ๊ฐ€์žฅ ์งง์€ ์ดํ„ฐ๋Ÿฌ๋ธ”์˜ ๊ธธ์ด์— ๋งž์ถฐ ์ง์„ ์ง“๋Š”๋‹ค.
  • ๋”ฐ๋ผ์„œ ๊ธธ์ด๊ฐ€ ๋‹ค๋ฅผ ๊ฒฝ์šฐ, ๊ฐ€์žฅ ์งง์€ ์ดํ„ฐ๋Ÿฌ๋ธ”์˜ ๊ธธ์ด์— ๋งž์ถฐ ๋‚˜๋จธ์ง€ ์š”์†Œ๋“ค์€ ๋ฒ„๋ ค์ง„๋‹ค.
  • ์œ„ ์ฝ”๋“œ์—์„œ list1์˜ ๊ธธ์ด๊ฐ€ ๋” ์งง๊ธฐ ๋•Œ๋ฌธ์—, list2์˜ 'c'๋Š” ๋ฒ„๋ ค์ง„๋‹ค.

 

4๏ธโƒฃ zip()์œผ๋กœ ๋”•์…”๋„ˆ๋ฆฌ ๋งŒ๋“ค๊ธฐ

keys = ['name', 'age', 'city']
values = ['Alice', 25, 'New York']

dictionary = dict(zip(keys, values))
print(dictionary)

 

์ถœ๋ ฅ ๊ฒฐ๊ณผ

{'name': 'Alice', 'age': 25, 'city': 'New York'}
  • ํ‚ค์™€ ๊ฐ’์„ ๋ฆฌ์ŠคํŠธ๋‚˜ ํŠœํ”Œ๋กœ ๋ฌถ์–ด ๋”•์…”๋„ˆ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

 

zip()์˜ ์—ญํ™œ์šฉ (Unzipping)

zipped = [(1, 'a'), (2, 'b'), (3, 'c')]
list1, list2 = zip(*zipped)
print(list1)  
print(list2)

 

์ถœ๋ ฅ ๊ฒฐ๊ณผ

(1, 2, 3)  # list1
('a', 'b', 'c')  #list2
  • zip()์œผ๋กœ ๋ฌถ์ธ ํŠœํ”Œ๋“ค์„ ๋‹ค์‹œ ํ’€์–ด๋‚ด๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค.
  • * ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์–ธํŒจํ‚นํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

728x90