[Python] 파일 다루기, 튜플, list comprehension, sorted

Sujin Lee·2021년 12월 6일
0

Python

목록 보기
3/13
post-thumbnail
post-custom-banner

📚 텍스트 파일 분석

1. 파일 다루기

1) 파일 열기/닫기

  • 열었다면 반드시 닫기! 프로그램 실행 속도에 영향을 주기 때문!
file.open('data.txt')
content = file.read() # 또는 file.wirte()
file.close()

2) 파일 자동으로 닫기

with open('data.txt') as file:
    file.open('data.txt')

3) 줄 단위로 읽기

contents = []
with open(‘data.txt’) as file:
    for line in file:
        contents.append(line)

4) 파일의 모드

  • open 기본 옵션은 읽기 모드로 열기!
  • 모드: 읽기, 쓰기, 읽고 쓰기
with open(‘data.txt’, ‘w’) as file:
    file.write(‘Hello’)

2. 데이터 구조

1) 튜플 (Tuple)

hello = (‘안녕하세요’, ‘hello’, ‘bonjour’) 
apple = (‘사과’, ‘apple’, ‘pomme’)
red = (‘빨갛다’, ‘red’, ‘rouge’)

- ❗️튜플 vs. 리스트❗️

  • 공통점: 순서가 있는 원소들의 집합
  • 차이점: 각 원소의 값을 수정할 수 없음, 원소의 개수를 바꿀 수 없음 (튜플은 변형 불가능)
# 리스트 변형
hello = [‘안녕하세요’, ‘hello’, ‘bonjour’] 
hello[0] = ‘안녕’        # [‘안녕’, ‘hello’, ‘bonjour’]
hello.append(‘ni hao’)  # [‘안녕’, ‘hello’, ‘bonjour’, ‘ni hao’]
# 튜플 변형
hello = (‘안녕하세요’, ‘hello’, ‘bonjour’)
hello[0] = ‘안녕’        # 에러 
hello = (‘안녕’, ‘hello’, ‘bonjour’) # 직접 변경은 가능
hello.append(‘ni hao’)  # 그런 함수 없음

2) list comprehension

  • 리스트로 리스트 만들기
words = [‘life’, ‘love’, ‘faith’]
first_letters = []
for word in words:
    first_letters.append(word[0])
# 같은 의미
first_letters = [word[0] for word in words]
numbers = [1, 3, 5, 7]
new_numbers = []
for n in numbers:
    new_numbers.append(n + 1)
# 같은 의미
new_numbers = [n + 1 for n in numbers]
  • 특정 원소 걸러내기
numbers = [1, 3, 4, 5, 6, 7]
even = []
for n in numbers:
    if n % 2 == 0:
        even.append(n)
# 같은 의미
even = [n for n in numbers if n % 2 == 0]
odd = [n + 1 for n in numbers if n % 2 == 0]

3) .sort

  • 데이터 정렬
numbers = [-1, 3, -4, 5, 6, 100]
sort_by_abs = sorted(numbers, key=abs)
# 절대값 기준으로 정렬 [-1, 3, -4, 5, 6, 100]
def reverse(word):
    return str(reversed(word))
# apple -> elppa
fruits = [‘cherry’, ‘apple’, ‘banana’]
sort_by_last = sorted(fruits, key=reverse)
# [‘banana’, ‘apple’, ‘cherry’]
profile
공부한 내용을 기록하는 공간입니다. 📝
post-custom-banner

0개의 댓글