Python

[Python 101] List Comprehension, Lambda, glob, os

thebuck104 2024. 7. 4. 17:08

 

List Comprehension

# 기본적인 구조
[표현식 for 항목 in iterable if 조건문]

# 예시: 1부터 10까지의 숫자를 제곱한 리스트 생성
squares = [x**2 for x in range(1, 11)]
print(squares)  # 출력: [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

# 예시: 리스트에서 짝수만 선택하여 제곱한 리스트 생성
even_squares = [x**2 for x in range(1, 11) if x % 2 == 0]
print(even_squares)  # 출력: [4, 16, 36, 64, 100]

# 예시: 문자열 리스트에서 각 문자열의 길이를 저장한 리스트 생성
words = ["apple", "banana", "grape", "orange"]
word_lengths = [len(word) for word in words]
print(word_lengths)  # 출력: [5, 6, 5, 6]

# 예시: 리스트 컴프리헨션을 중첩하여 2차원 리스트 생성
matrix = [[i for i in range(1, 4)] for j in range(3)]
print(matrix)  # 출력: [[1, 2, 3], [1, 2, 3], [1, 2, 3]]

 

 

Lambda

add = lambda x, y: x + y
print(add(3, 5))  # 출력: 8

square = lambda x: x ** 2
print(square(4))  # 출력: 16

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
print(even_numbers)  # 출력: [2, 4, 6, 8, 10]

numbers = [1, 2, 3, 4, 5]
squared_numbers = list(map(lambda x: x ** 2, numbers))
print(squared_numbers)  # 출력: [1, 4, 9, 16, 25]

또 다시 등장한 list map lambda 삼총사

 

 

glob

import glob

# 현재 경로의 모든 파일을 찾기
file_list1 = glob.glob('*')

# 단일 파일 패턴으로 파일을 찾기
file_list2 = glob.glob('drive')

# 디렉토리 안의 모든 파일 찾기
file_list3 = glob.glob('sample_data/*')

# 특정 확장자를 가진 파일만 찾기
file_list4 = glob.glob('sample_data/*.csv')

 

 

os

import os

#현재 작업 디렉토리
cwd = os.getcwd()
print(cwd)

#디렉토리 생성
os.mkdir('sample_data/new_directory')

#파일 이름 변경
os.rename('sample_data/new_directory', 'sample_data/new_directory2')

#파일 삭제
os.remove(file_adress)

#파일 경로 가져오기
files = os.listdir('/content')

#경로 조작
path = os.path.join('/content', 'sample_data', 'mnist_test.csv')
# 하나하나 '/' 를 안달아줘도 됨