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

[ํŒŒ์ด์ฌ] ๋ฆฌ์ŠคํŠธ ์ปดํ”„๋ฆฌํ—จ์…˜

devCloud 2024. 10. 21. 20:30
728x90

๋ฆฌ์ŠคํŠธ ์ปดํ”„๋ฆฌํ—จ์…˜ (List Comprehension)

ํŒŒ์ด์ฌ์—์„œ ๊ฐ„๊ฒฐํ•˜๊ณ  ํšจ์œจ์ ์œผ๋กœ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ตฌ๋ฌธ์ด๋‹ค. ๊ธฐ์กด ๋ฆฌ์ŠคํŠธ์˜ ๊ฐ’์„ ์กฐ๊ฑด์— ๋”ฐ๋ผ ๋ณ€ํ˜•ํ•˜๊ฑฐ๋‚˜ ํ•„ํ„ฐ๋งํ•˜์—ฌ ์ƒˆ๋กœ์šด ๋ฆฌ์ŠคํŠธ๋ฅผ ๋งŒ๋“ค ๋•Œ ๋งค์šฐ ์œ ์šฉํ•˜๋‹ค. ๋ฆฌ์ŠคํŠธ๋ฅผ ์ƒ์„ฑํ•˜๋Š” for ๋ฃจํ”„๋ฅผ ํ•œ ์ค„๋กœ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์–ด, ์ฝ”๋“œ๊ฐ€ ์งง๊ณ  ๊ฐ€๋…์„ฑ์ด ๋†’์•„์ง„๋‹ค.

 

 

๊ธฐ๋ณธ ๊ตฌ๋ฌธ

[expression for item in iterable if condition]

 

  • expression: ๋ฆฌ์ŠคํŠธ์— ํฌํ•จ๋  ๊ฐ’์ด๋‚˜ ๋ณ€ํ˜•๋œ ๊ฐ’
  • item: iterable์˜ ๊ฐ ์š”์†Œ๋ฅผ ๋‚˜ํƒ€๋ƒ„
  • iterable: ๋ฐ˜๋ณต ๊ฐ€๋Šฅํ•œ ๊ฐ์ฒด (์˜ˆ: ๋ฆฌ์ŠคํŠธ, ๋ฌธ์ž์—ด, ํŠœํ”Œ ๋“ฑ)
  • condition (์„ ํƒ์ ): ๊ฐ ์š”์†Œ์— ๋Œ€ํ•ด ์ ์šฉํ•  ์กฐ๊ฑด์œผ๋กœ, ์กฐ๊ฑด์ด ์ฐธ์ผ ๋•Œ๋งŒ ์š”์†Œ๊ฐ€ ํฌํ•จ๋จ

 

1๏ธโƒฃ ์˜ˆ์ œ 1: ๊ธฐ๋ณธ ๋ฆฌ์ŠคํŠธ ์ปดํ”„๋ฆฌํ—จ์…˜

squares = [x * x for x in range(10)]
print(squares)

 

์ถœ๋ ฅ ๊ฒฐ๊ณผ

[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
  • range(10)์˜ ๊ฐ ๊ฐ’ x์— ๋Œ€ํ•ด x * x๋ฅผ ๊ณ„์‚ฐํ•˜์—ฌ ๋ฆฌ์ŠคํŠธ์— ์ถ”๊ฐ€

 

 

2๏ธโƒฃ ์˜ˆ์ œ 2: ์กฐ๊ฑด๋ถ€ ๋ฆฌ์ŠคํŠธ ์ปดํ”„๋ฆฌํ—จ์…˜

even_numbers = [x for x in range(10) if x % 2 == 0]
print(even_numbers)

 

์ถœ๋ ฅ ๊ฒฐ๊ณผ

[0, 2, 4, 6, 8]
  • range(10)์˜ ๊ฐ ๊ฐ’ ์ค‘ ์ง์ˆ˜๋งŒ ๋ฆฌ์ŠคํŠธ์— ํฌํ•จ

 

์ค‘์ฒฉ ๋ฆฌ์ŠคํŠธ ์ปดํ”„๋ฆฌํ—จ์…˜(์ด์ค‘ ๋ฆฌ์ŠคํŠธ)

matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
flat_list = [item for row in matrix for item in row]
print(flat_list)

 

์ถœ๋ ฅ ๊ฒฐ๊ณผ

์ถœ๋ ฅ: [1, 2, 3, 4, 5, 6, 7, 8, 9]
  • ์ค‘์ฒฉ๋œ for ๋ฃจํ”„๋ฅผ ์‚ฌ์šฉํ•ด 2์ฐจ์› ๋ฆฌ์ŠคํŠธ๋ฅผ 1์ฐจ์› ๋ฆฌ์ŠคํŠธ๋กœ ๋งŒ๋“ ๋‹ค.

 

๐Ÿ“Œ ์ž…๋ ฅ์„ ํ•ด์•ผ ํ•  ๋•Œ

list = [map(int, input().split() for _ in range(10)]

 

์ด์ค‘ ๋ฆฌ์ŠคํŠธ์ผ ๊ฒฝ์šฐ

list = [list(map(int, input().split()) for _ in range(10)]
  • list๋งŒ ๋ถ™์—ฌ์ฃผ๋ฉด ๋œ๋‹ค.

 


 

728x90