[Python] 제너레이터 표현식 (Generator Expression)
·
Programming/Python
제너레이터(Generator)는 값을 한 번에 만들지 않고, 필요할 때마다 하나씩 만들어 내는 객체이다. 기본 구조(표현식 for 변수 in iterable if 조건)소괄호 ( )를 사용한다.결과물은 리스트나 세트가 아니라 제너레이터(Generator) 객체이다. 주요 특징Lazy Evaluation 제너레이터는 Lazy Evaluation을 한다. 즉, 값을 미리 만들어 놓지 않고, 누군가 "다음 값 줘!"라고 요청할 때 비로소 계산을 시작한다. 모든 값을 저장할 필요가 없는 경우, 제너레이터는 메모리 측면에서 매우 유리하다.gen = (x**2 for x in range(3))print(next(gen)) # 0print(next(gen)) # 1print(next(gen)) # 4# print(..
[Python] 세트 컴프리헨션 (Set Comprehension)
·
Programming/Python
세트 컴프리헨션(Set Comprehension)은 중복을 허용하지 않는 집합(set)을 만드는 가장 간결한 방법이다. 리스트 컴프리헨션과 거의 같지만, 결과가 set이라는 점이 핵심이다. 기본 구조{표현식 for 변수 in 반복가능객체 if 조건} 딕셔너리 컴프리헨션과 헷갈리기 쉬운데,{expr} → set{key: value} → dict{}를 사용하지만 key: value가 아닌 단일 표현식만 적는다. 결과물은 순서가 없고 중복이 없는 set 객체다. 일반적인 방식unique_numbers = set()for x in [1, 2, 2, 3, 3, 3]: unique_numbers.add(x)# 결과: {1, 2, 3} 세트 컴프리헨션unique_numbers = {x for x in [1, 2..
[Python] 딕셔너리 컴프리헨션 (Dictionary Comprehension)
·
Programming/Python
딕셔너리 컴프리헨션(Dictionary Comprehension)은 기존 데이터로부터 새로운 dict를 만드는 표현식이다.리스트 컴프리헨션과 거의 동일하지만, 결과가 dict라는 점이 핵심이다.기본 구조{key_expr: value_expr for 변수 in iterable if 조건}key_expr → key 생성value_expr → value 생성 일반적인 방식squares = {}for x in range(5): squares[x] = x * x 딕셔너리 컴프리헨션squares = {x: x * x for x in range(5)} “dict를 만든다”는 의도가 바로 보인다. 실제로 많이 쓰는 패턴들기존 dict 가공raw = {"A": 10, "B": -3, "C": 7}filtered ..
[Python] 리스트 컴프리헨션 (List Comprehension)
·
Programming/Python
리스트 컴프리헨션(List Comprehension)은 파이썬에서 새로운 리스트를 만들 때 사용하는 짧고 간결한 문법이다.보통 for 루프와 if 조건을 결합하여 한 줄로 작성하며, 리스트를 생성하는 목적에 한해서 일반적인 for + append() 방식보다 코드가 간결하고, 대부분의 경우 실행 속도도 더 빠르다.기본 구조[표현식 for 변수 in 반복가능객체 if 조건] 이 문법의 목적은 딱 하나다. “반복 + 조건 + 변환”을 한 줄로 표현하여, 리스트를 만든다는 의도를 명확히 드러내는 것이다. 일반적인 방식numbers = []for i in range(5): numbers.append(i)# 결과: [0, 1, 2, 3, 4] 리스트 컴프리헨션numbers = [i for i in range..
[Tkinter] 파이썬으로 GUI 만들기 - Entry, Text
·
Programming/Python
파이썬으로 GUI 만들기 - Entry, Text Entry 한 줄 기입창, 엔터가 불가능하다. ex) 로그인 창의 아이디 비밀번호 입력 칸 # Entry: 한 줄만 사용 ,엔터 불가능. 예시로 로그인 창 아이디 비밀번호 입력칸 e = Entry(root, width=30) e.pack() e.insert(0, "한 줄만 입력해요") def btncmd(): print(e.get()) # 내용 삭제 e.delete(0,END) btn = Button(root, text="클릭", command=btncmd) btn.pack() root.mainloop() # 윈도우가 종료될 때까지 실행시킴 insert(index, “문자열”) : index 위치에 문자열 추가 get() : entry에 입력된 문자열 가..
[Tkinter] 파이썬으로 GUI 만들기 - Label, Button
·
Programming/Python
파이썬으로 GUI 만들기 - Label, Button Label 텍스트, 이미지 등을 나타내는 라벨 객체를 생성 from tkinter import * # Label은 글자나, 이미지를 보여주고, 어떤 동작을 하지는 않는다. root = Tk() # 가장 상위 레벨의 윈도우 창 생성 root.title("Stone Forest") # 제목 설정 root.geometry("600x480") # 크기 설정 : 가로 * 세로 # root.geometry("600x480+300+100") # 크기 설정 : 가로 * 세로 + x좌표 + y좌표 root.resizable(False, False) # 창 크기(x 너비, y 너비) 변경 On/Off label1 = Label(root, text="안녕하세요") lab..