Python comprehension ?
๋ค๋ฅธ Sequence๋ก๋ถํฐ ์๋ก์ด Sequence (Iterable Object)๋ฅผ ๋ง๋ค ์ ์๋ ๊ธฐ๋ฅ
* comprehension : ์ดํด๋ ฅ
01. List comprehension
[ ์ถ๋ ฅ ํํ์ for ์์ in ์ ๋ ฅ Sequence [ if ์กฐ๊ฑด์ ] ]
- ์ ๋ ฅ Sequence๋ Iteration์ด ๊ฐ๋ฅํ ๋ฐ์ดํฐ Sequence ํน์ ์ปฌ๋ ์
- [if ์กฐ๊ฑด์]์ ์ต์
hash_table = list([0 for i in range(10)])
print(hash_table) #[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
#1. ์ข
๋ฅ๊ฐ ๋ค๋ฅธ ๋ฐ์ดํฐ์์ ์ ์ ๋ฆฌ์คํธ๋ง ๊ฐ์ ธ์ค๊ธฐ
dataset = [4, True, 'dave', 2.1, 3]
int_data = [num for num num in dataset if type(num) == int]
print(int_data) #[4, 3]
02. Set comprehension
{ ์ถ๋ ฅ ํํ์ for ์์ in ์ ๋ ฅ Sequence [ if ์กฐ๊ฑด์ ] }
- ์ ๋ ฅ Sequence๋ก๋ถํฐ ์กฐ๊ฑด์ ๋ง๋ ์๋ก์ด Set ์ปฌ๋ ์ ๋ฆฌํด ( Set : ์ค๋ณต X )
- [if ์กฐ๊ฑด์]์ ์ต์
- Python3 ๋ถํฐ ์ถ๊ฐ๋จ
int_data = [1, 1, 2, 3, 3, 4]
square_data_set = {num * num for num in int_data}
print(square_data_set) #{16, 1, 4, 9}
square_data_set1 = {num * num for num in int_data if num > 3}
print(square_data_set) #{16}
03. Dictionary comprehension
{ Key:Value for ์์ in ์ ๋ ฅ Sequence [ if ์กฐ๊ฑด์ ] }
- ์ ๋ ฅ Sequence๋ก๋ถํฐ ์กฐ๊ฑด์ ๋ง๋ ์๋ก์ด Dictionary ์ปฌ๋ ์ ๋ฆฌํด
- [if ์กฐ๊ฑด์]์ ์ต์
- Python3 ๋ถํฐ ์ถ๊ฐ๋จ
id_name = {1:'lee', 2:'kim', 3:'park'}
id_name.items() #dict_items([(1, 'lee'), (2, 'kim'), (3, 'park')])
#์์ด๋๊ฐ 1๋ณด๋ค ํฐ ๋ฐ์ดํฐ, val:key ํ์์ผ๋ก
name_id = {val:key for key,val in id_name.items() if key > 1}
print(name_id) #{'kim': 2, 'park': 3}
#์์ด๋ 10๋จ์๋ก ๋ฐ๊พธ๊ธฐ
name_id = {key*10:val for key,val in id_name.items()}
print(name_id) #{10:'lee', 20:'kim', 30:'park'}
'Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Python] ๋ฐ์ฝ๋ ์ดํฐ (Decorator) (1) | 2024.01.31 |
---|