[Python] list, dict comprehension

Updated:

List Comprehension

์šฐ๋ฆฌ๋Š” ์ฝ”๋”ฉ์„ ํ•˜๋‹ค๋ณด๋ฉด ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์กฐ๊ฑด์„ ํ†ตํ•ด list, dict ์„ ์ดˆ๊ธฐํ™” ํ•ด์•ผํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค.

๋ณต์žกํ•œ list, dict ๋„ comprehension ์„ ํ†ตํ•ด ์‰ฝ๊ฒŒ ์ดˆ๊ธฐํ™” ํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ตณ์ด ๋งํ•˜๋ฉด ์‰ฝ๊ฒŒ ๋งŒ๋“ค๊ธฐ ๋ณด๋‹ค๋Š” ์ฝ”๋“œ๋ฅผ ๊ฐ„๋‹จํžˆ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค๋Š”๊ฒŒ ๋งž๋Š” ๊ฒƒ ๊ฐ™๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด๋ณด์ž๋ฉด 1 ~ 100 ๊นŒ์ง€์˜ ์ˆซ์ž ์ค‘ ์ง์ˆ˜๋งŒ ๊ฐ€์ง„ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋งŒ๋“ค์–ด ๋ณด๋ ค๊ณ  ํ•œ๋‹ค.

comprehension ๊ธฐ๋Šฅ์„ ๋ชจ๋ฅธ๋‹ค๋ฉด..

myList = []
for val in range(1, 101):
  if val%2 == 0:
    myList.append(val)

ํ•˜์ง€๋งŒ comprehension ์„ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด..

myList = [val for val in range(1, 101) if val%2 == 0]

ํ•œ ์ค„๋กœ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค. ๊ฐ„๋‹จํ•œ ์˜ˆ๋ฅผ ๋“ค์–ด์„œ ๊ทธ๋ ‡์ง€๋งŒ ์กฐ๊ธˆ ๋ณต์žกํ•œ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ดˆ๊ธฐํ™” ํ•˜๋Š” ๊ฒฝ์šฐ

ํฌ๋ฌธ ์—ฌ๋Ÿฌ ๊ฐœ ๋ฅผ ์‚ฌ์šฉ ํ•  ์ˆ˜ ๋„ ์žˆ๋Š”๋ฐ ๋ชจ๋‘ ํ•œ ์ค„๋กœ ์ดˆ๊ธฐํ™”๊ฐ€ ๊ฐ€๋Šฅํ•ด์ง„๋‹ค.

Dict Comprehension

list ๋ฟ ๋งŒ ์•„๋‹ˆ๋ผ dict ๋„ ์ดˆ๊ธฐํ™”๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.

[Programmers] ์ฒด์œก๋ณต ๋ฌธ์ œ์—์„œ ์กฐ๊ธˆ์€ ๋ณต์žกํ•œ dict ๋ฅผ ๋งŒ๋“ค์–ด์•ผ ํ–ˆ๋Š”๋ฐ

comprehension ์„ ํ†ตํ•ด ์•„์ฃผ ๊ฐ„๋‹จํžˆ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

animal = ['dog', 'cat', 'cow']
num = [3,5,10]

animal_dict = {val[0] : val[1] for val in zip(animal, num)}

๋™๋ฌผ์„ key ๋กœ num ์„ value ๋กœ ๊ฐ€์ง€๋Š” dict ๋ฅผ ๋งŒ๋“ค๊ณ  ์‹ถ์„ ๋•Œ zip ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜์—ฌ ๋งค์šฐ๋งค์šฐ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ดˆ๊ธฐํ™” ํ•  ์ˆ˜ ์žˆ๋‹ค.

์ •๋ฆฌ

์•„์ฃผ ๊ฐ„๋‹จํ•œ ์˜ˆ๋ฅผ ๋“ค์—ˆ์ง€๋งŒ ๊ต‰์žฅํžˆ ๋ณต์žกํ•œ comprehension ๋„ ๋งŽ์ด ์žˆ๋‹ค.

if ๋ฟ ๋งŒ ์•„๋‹ˆ๋ผ else ๋ฌธ ๋„ ๋“ค์–ด ๊ฐˆ ์ˆ˜ ์žˆ๋‹ค.

ํ•˜์ง€๋งŒ elif ๋ฌธ ์€ ๋“ค์–ด ๊ฐˆ ์ˆ˜ ์—†์–ด ๋ฌด์กฐ๊ฑด if else ๋กœ ๋งŒ๋“ค์–ด์•ผ ํ•ด ์ฒ˜์Œ์—๋Š” ์กฐ๊ธˆ ํ—ท๊ฐˆ๋ ธ๋‹ค.

comprehension ์„ ํ•œ ๋ฒˆ ์ ‘ํ•˜๋ฉด ๋‹ค์Œ๋ถ€ํ„ฐ๋Š” ์ด ๊ธฐ๋Šฅ์ด ์—†๋Š” ์–ธ์–ด๋Š” ์‚ฌ์šฉํ•˜๊ธฐ๋„ ์‹ซ์–ด์ง„๋‹ค๊ณ  ํ•˜๋Š”๋ฐ

์ •๋ง ๊ทธ๋Ÿด ๊ฒƒ ๊ฐ™๋‹ค ์•„์ฃผ์•„์ฃผ ํŽธํ•˜๊ธฐ ๋•Œ๋ฌธ!


Categories:

Updated:

Leave a comment