파이썬/기본 지식

[파이썬 문법 기초] - 파일 불러오기, if & for 구문 간단하게 쓰기, map, filter, lamda 식

뜌비뜌바밥 2024. 9. 9. 20:27
다른 파일의 함수 불러오기
  • 다른 파일에 저장되어 있는 함수를 사용하고 싶을 때 from, import 구문을 통해 불러올 수 있
# 파일 이름에 있는 함수를 전부 쓸 수 있는 구문
from 파일 이름 import *

#파일 이름에 있는 특정 함수를 쓸 수 있는 구문
from 파일 이름 import 함수 이름

 

한 줄로 줄여쓰기

 

1. IF 함수

# 기존 문장
num = 3

if num%2==0:
	result = '짝수'
else:
	result = '홀수'

print(f'{num}은 {result}입니다')

# 한 줄로 만들기
result = ('짝수' if num%2==0 else '홀수')

 

2. for 구문

a_list = [1, 3, 2, 5, 1, 2]

#기존의 for 구문
b_list = []
for a in a_list:
	b_list.append(a+2)
print(b_list)

#한 줄로 줄이기
b_list = [a+2 for a in a_list]
print(b_list)

 

map
  • 리스트의 요소를 지정된 함수로 일괄 처리해주는 함수
  • 원본 리스트를 변경하지 않고 새 리스트를 생성
#기본형태
map(함수, 리스트)
#예시
map(int, list)

#리스트의 모든 원소를 조작하기
people = [
    {'name': 'bob', 'age': 20},
    {'name': 'carry', 'age': 38},
    {'name': 'john', 'age': 7},
    {'name': 'smith', 'age': 17},
    {'name': 'ben', 'age': 27},
    {'name': 'bobby', 'age': 57},
    {'name': 'red', 'age': 32},
    {'name': 'queen', 'age': 25}
]

def check_adult(person):
	if person['age'] > 20:
    	return '성인'
    else:
    	return '청소년'
        
result = map(check_adult, people)
print(list(result)

 

filter
  • 조건이 'True'인 값들만 불러오는 함
#map과 유사하나 True 인 값만 불러오는 경우
people = [
    {'name': 'bob', 'age': 20},
    {'name': 'carry', 'age': 38},
    {'name': 'john', 'age': 7},
    {'name': 'smith', 'age': 17},
    {'name': 'ben', 'age': 27},
    {'name': 'bobby', 'age': 57},
    {'name': 'red', 'age': 32},
    {'name': 'queen', 'age': 25}
]

result = filter(lambda x: x['age']>20, people)
print(list(result))

 

lamda식
  • 매개변수 x를 이용한 함수를 간단하게 사용하고 싶을 때 
#기본 구문
lambda 매개변수(인자):매개변수(인자)를 활용한 동작 = 함수

#활용
people = [
    {'name': 'bob', 'age': 20},
    {'name': 'carry', 'age': 38},
    {'name': 'john', 'age': 7},
    {'name': 'smith', 'age': 17},
    {'name': 'ben', 'age': 27},
    {'name': 'bobby', 'age': 57},
    {'name': 'red', 'age': 32},
    {'name': 'queen', 'age': 25}
]

result = map(lambda person:('성인' if person['age]>20 else '청소년), people)
print(list(result))