토대가 탄탄한 1층 쌓기. - 파이썬 문법 복습. 튜플, 리스트 컴프리헨션, 파일 생성, 입출력.

2023. 5. 29. 18:32python

반응형

 

 

 

얼기설기 배운 파이썬 코드를 좀 더 단단하게 해보자. 좀 더 익숙해지게 복습하자.

 

 

안익숙한 튜플 : 튜플은 여러 개의 값이 순서대로 있으나 내용을 변경할 수 없는 불변타입 시퀀스다. 대신 튜플은 숫자, 문자, 불리언, 딕셔너리 등등 다양한 타입의 값을 포함시킬 수 있다.

 

tuple_test = (True, [1,2,3],{'이름': '이스트진','나이' : 50})

이렇게 하는 것도 가능하다는 의미이다.

 

 

파이썬의 map() 함수. : 주어진 함수를 시퀀스(리스트나 튜플)의 각 요소에 적용해 새로운 이터러블 객체를 반환하는 내장함수. 문법은 map(function,iterable)을 쓴다. function은 매개변수로 하나의 값을 받고 값을 변환해서 반환하는 함수여야 한다. iterable 함수가 적용될 시퀀스 형태의 구조를 넣어준다.

numbers = [1,2,3,4,5]

squared = map(lambda x : x**2,numbers)

print(list(squared))


strings = ['사과','딸기','바나나']

lengths = map(len,strings)

print(list(lengths))

 

 

잊어버린 리스트 컴프리헨션.

#enumerate
strings = ['apple', 'banana', 'cherry']
for index, value in enumerate(strings):
    print(index, value)

#[표현식 for 변수 In 리스트]

c= [i * 3 for i in range(10)]

print(list(c))

#2로 나눈 것이 0이거나 3으로 나눈 것이 0인 것을 출력.
numbers = [x for x in range(1, 11) if x % 2 == 0 or x % 3 == 0]


#2로 나눈 것이 0이면서 3으로 나눈 것이 0인 것을 출력.
numbers = [x for x in range(1, 11) if x % 2 == 0 if x % 3 == 0]
print(numbers)


#딕셔너리 형의 리스트 컴프리헨션.
strings = ['apple,','pair','banana']

dictionary_test = {s: i for s, i in enumerate(strings, start=1)}

print(dictionary_test)

 

 

파일 오픈.

file = open('test.py','w')


file.write('print(\'Hello Python\')')

# file.write("print('Hello Python')")
#
file.close()

이렇게 하면 파일이 열린다. Hello Python에  백슬래시(이스케이프 문자)를 쓰거나 더블 코테이션 안에 싱글 코테이션을 넣는 방식으로 처리할 수 있다.

#with open(파일 이름, 파일 모드) as 파일객체:
    #코드
with open('test.py', 'r') as file:
    s = file.read()
    print(s)

이렇게 with as를 사용하면 동시에 열고 닫는 기능도 있다. close를 사용하지 않고도 자동으로 파일을 열고 작업을 마치면 닫는다.

 

import pickle

# name= 'eastjin'
# age = 50
# address = '뉴욕시 논현동'
# scores = {'국어':90, '수학':10,'duddj':20}
#
# with open('eastjin.p','wb') as file:
#     pickle.dump(name, file)
#     pickle.dump(age, file)
#     pickle.dump(address, file)
#     pickle.dump(scores, file)


with open('eastjin.p', 'rb') as file:
    name = pickle.load(file)
    age = pickle.load(file)
    address = pickle.load(file)
    scores = pickle.load(file)
    print(name)
    print(age)
    print(address)
    print(scores)

피클 언피클이라는 기능도 있다. 애초에 open이라는 것이 파일을 객체 형식으로 가상으로 여는 것인데, write로 쓰는 것이 아니라 pickle이라는 파이썬 표준 라이브러리를 사용한다. 그래서 변수를 객체 형식으로 저장하고(위에 주석첯리한 것.) 그것을 읽어올 수 있다. 나름 활용하기 좋은 기능일지도?

728x90