728x90
반응형
어제 공부했는데 갑자기 까무룩 잠들어서 til만 못 썼다.. 오늘은 그래서 두 개가 올라간다.
# rnage(시작, 끝, 간격)
range_tuple = tuple(range(10, 0, -2))
print(range_tuple)
# 튜플은 리스트처럼 요소를 일렬로 저장하지만, 안에 저장된 요소를 변경, 추가, 삭제할 수 없다. (튜플은 불변 객체라 아무래도...)
# 간단하게 읽기 전용 리스트라고 생각할 수 있다.
a = 'a', # 이렇게 튜플 맏들어도 됨
b = 'b', 'c',
print(type(a), type(b))
print(a)
print(b)
'''
< 시퀀스 자료형 >
- list, tuple, range, string 등
- 공통점 : 값이 연속적(sequential)으로 이어져 있다.
- in/not in 사용 가능 -> True or False
- + 연산자 활용 가능
- * 연산자 활용 가능. 단, 0 또는 음수를 곱하면 빈 객체가 나오며 실수는 곱할 수 없다.
- range는 +/* 연산자로 객체 연결 불가능 -> list나 tuple로 만들어 연결/반복하면 됨
- str도 시퀀스 자료형이니까 len(사용 가능
- 시퀀스 객체의 요소는 순서가 정해져 있으므로 인덱스로 접근 가능하다.
- tuple은 요소 변경이 불가능하기 때문에 인덱스를 통한 요소 변경/삭제/추가가 불가능하다. str, range도 마찬가지
- 슬라이싱은 모두 활용 가능, 다만 불변 객체는 객체를 새로 만드는 방식
- 시퀀스 객체 중에서도 불변 객체는 슬라이싱을 활용해도 요소를 할당할 수 없다.
'''
print(len(range(0, 10, 2))) # 5
print(len('hello, world')) # 띄어쓰기도 카운트함
r = range(1, 11)
print(r[:7:2]) # range(1, 8, 2)라고 요소가 모두 표시되지 않고 생성 범위만 표시됨
print(list(r[:7:2])) # [1, 3, 5, 7] 리스트로 표시해주면 해결
# 슬라이싱을 활용해 리스트에 새로운 요소를 할당할 때, 할당할 요소의 개수가 슬라이싱된 요소의 개수보다 적으면 그만큼 리ㅡ트의 요소 개수도 줄어든다.
a = list(range(0, 10))
a[2:5] = ['2~4']
print(a) # [0, 1, '2~4', 5, 6, 7, 8, 9]
# 반대로 할당할 용소의 개수가 슬라이싱된 요소의 개수보다 많으면 그만큼 리스트의 요소 개수도 늘어난다.
a[2:5] = [2, 3, 4, 5, 6]
print(a) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# 인덱스의 증가폭을 활용해 슬라이싱을 통한 재할당을 할 때는, 슬라이싱 범위 내 요소의 개수와 할당할 요소의 개수가 일치해야 한다.
b = [0, 10, 20, 30, 40, 50, 60, 70, 80, 90]
b[2:8:2] = ['a', 'b', 'c'] # 개수 안 맞추면 ValueError 발생
print(b)반응형
'Programming > TIL and WIL' 카테고리의 다른 글
| Linux(리눅스) - 크론탭(Crontab) (0) | 2023.02.17 |
|---|---|
| 인스턴스 메소드/클래스 메소드/스태틱 메소드, 알고리즘: 징검다리, ORM(lazy loading, eager loading, select_related, prefetch_related, n + 1, caching) (0) | 2023.02.16 |
| CORS(Cross-Origin Resource Sharing) (0) | 2023.02.14 |
| HTTPS의 개념과 원리 (0) | 2023.02.11 |
| 웹 서버와 웹 어플리케이션, CGI, WSGI, ASGI (0) | 2023.02.10 |