1
2
3
| numbers = [10, 20, 30, 40, 50, 60, 70]
subset1 = numbers[ :3]
print(subset1)
리스트 슬라이싱 응용 class="highlight"> 1
2
3
| numbers = [10, 20, 30, 40, 50, 60, 70]
subset1 = numbers[-3 :]
print(subset2)
![image.png]()
class="highlight"> 1
2
3
4
5
| numbers = [10, 20, 30, 40, 50, 60, 70]
list1 = numbers[ : : 2]
print(list1)
list2 = numbers[ : : -1]
print(list2)
![image.png]()
리스트 컴프리헨션- 리스트를 간결하게 생성 · 조작
- 문법 형식 1
- 문법 형식 2
[표현식 for 변수 in 반복가능한 객체 if 조건]
- 반복가능한 객체
- 리스트, 튜플, 딕셔너리, 문자열, 집합, range 객체
- 리스트 컴프리헨션 응용
리스트 생성 class="highlight"> 1
2
3
4
| numbers = []
for i in range(5):
numbers.append(i)
print(numbers)
class="highlight"> 1
2
| numbers = [i for i in range(5)]
print(numbers)
원소 조작 class="highlight"> 1
2
3
| numbers = [1, 2, 3, 4, 5]
squares = [num ** 2 for num in numbers]
print(squares)
조건 적용 class="highlight"> 1
2
3
| numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
even_numbers = [num for num in numbers if num % 2 == 0]
print(even_numbers)
딕셔너리 컴프리헨션- 대상 딕셔너리를 간결하게 생성 · 조작
- 리스트의
[] 연산자 대신 딕셔너리의 {} 연산자를 사용 - 문법 형식 1
{키: 표현식 for 변수 in 반복가능 객체}
- 문법 형식 2
{키: 표현식 for 키변수, 값변수 in 딕셔너리.items()}
- 딕셔너리 컴프리헨션 응용
딕셔너리 생성 class="highlight"> 1
2
3
4
5
| # for문을 사용한 일반적인 딕셔너리 생성
squares = {}
for i in range(5):
squares[i] = i ** 2
print(squares)
class="highlight"> 1
2
3
| # 딕셔너리 컴프리헨션을 사용한 방식
squares = {i: i ** 2 for i in range(5)}
print(squares)
문자열 형식 지정문자열 형식 지정의 개념- 데이터 분석 과정에서 특정 형식의 데이터를 출력하거나 변수 값을 포함한 문자열을 생성하는 상황이 자주 발생
- 문자열 포맷팅(string formatting) 기능 사용
- 처리 과정의 효율적인 표현 방법이 요구
- 오류가 없는 간결한 문법적 표현으로 보다 효율적이고 가독성 높은 코드를 작성하는 방법 필요
- C 스타일(% 연산자) 포맷팅
str.format() 메서드를 이용한 포맷팅- f-문자열 포맷팅
C 스타일(% 연산자) 포맷팅- C 언어의
printf() 스타일과 유사- C 언어를 배운 사람이라면 쉽게 이해하고 사용
- C와 파이썬을 함께 사용하는 환경에서 일관된 스타일 유지
- 문법 형식
"형식 지정자를 포함한 문자열" % (변수 리스트)
- C 스타일의 단점
- 변수의 개수가 증가할 수록 복잡해지고 가독성이 저하
- 변수의 개수가 잘못되거나 순서 불일치 시 오류 발생
- 딕셔너리, 리스트 등 중첩된 데이터 구조를 직접 활용하기 어려움
주요 형식 지정자| 형식 지정자 | 설명 |
|---|
%d | 정수(decimal) 출력 | %i | 정수(integer) 출력 (%d와 동일) | %o | 8진수(octal) 출력 | %x | 16진수(lowercase) 출력 | %X | 16진수(uppercase) 출력 | %f | 소수점이 있는 실수(float) 출력 | %.nf | 소수점 이하 n자리까지 출력 | %c | 단일 문자 출력 (정수의 ASCII 문자 변환) | %s | 문자열(string) 출력 | %% | %문자 자체를 출력 |
C 스타일 포맷팅 활용C 스타일 포맷팅 활용 예 class="highlight"> 1
2
3
| item = "프린터"
price = 360000
print("상품명: %s, 가격: %d" % (item, price))
새로운 포맷팅 class="highlight"> 1
2
3
| item = "프린터"
price = 360000
print("상품명: {}, 가격: {}".format(item, price))
- 중괄호
{}로 표시된 자리 표시자를 사용하여 문자열 내의 특정 위치에 값을 삽입하는 방식 - 문법 형식
"문자열 {위치 또는 이름}".format(인자)
- % 연산자 방식보다 가독성이 낫고 유연
str.format() 메서드의 단점- 복잡한 문자열 형식 지정이 필요한 경우 코드가 장황
- 여러 줄의 복잡한 형식을 지정할 때 중괄호와 형식 지정자의 조합 시 가독성 저하
|
|
|
|
|
|
|
|
|
|
|