혼공파 26 ~ 28강
1. 반복문과 함수가 어려운 이유
익숙하지 않은 코드 흐름
수학을 잘 모르는 사람들(고등학교까지의 수학)
2. 수열, 배열, 리스트 기본
# 수열
"가나다라" # 문자들이 일렬로 나열된 것 : 문자열
1 2 3 4 # 숫자들이 일렬로 나열된 것 : 수열
항 : 수열의 요소
길이 : 수열 요소의 수
유한 수열 : 길이가 유한한 수열
무한 수열 : 길이가 무한한 수열
# 배열 : 길이가 고정
[10, 10.0, "가나다", True]
0-index : a0, a1, a2, a3 [파이썬]
1-index : a1, a2, a3, a4 [루아]
# 리스트 : 배열에 요소 추가/제거 등의 기능을 추가한 것
a = [123, "abc", True]
print(a[0]) # 123
print(a[1]) # abc
print(a[2]) # True
print(a[0:1]) # [123]
print(len(a)) # 3
# 리스트 반대로 돌리기
"abcde[::-1]"
print([1, 2, 3, 4, 5][::-1]) # [5, 4, 3, 2, 1]
# 중첩 리스트
b = [a, a, a]
c = [[1, 2, 3], [4, 5], [6, 7]]
c[0] # [1, 2, 3]
c[0][1] # 2
3. 리스트의 함수
# 파괴적이다 : 연산 후에 피연산자가 변형되는 것
# 비파괴적이다 : 연산 후에 피연산자가 변형되지 않는 것
## 비파괴적연산은 원본도 남기고 연산 결과도 남기기 때문에 안전하지만 메모리를 많이 차지한다.
## 리스트는 크기가 클 가능성이 높으므로, 비파괴적으로 원본과 결과를 남기기에는 메모리 용량 압박이 심하다.
따라서 리스트 관련 함수는 요소의 존재를 확인하는 연산자 이외에는 모두 파괴적 연산이다.
# 요소 추가 : append(), insert(), extend()
a = [1, 2, 3, 4]
a.append(10) # 가장 마지막에 요소를 하나 추가
print(a) # [1, 2, 3, 4, 10]
a.insert(0, 20) # 원하는 위치에 요소를 하나 추가
print(a) # [20, 1, 2, 3, 4, 10]
a.extend([5, 6, 7, 8]) # 가장 마지막에 요소를 여러 개 추가
print(a) # [20, 1, 2, 3, 4, 10, 5, 6, 7, 8]
# 리스트 연결 연산자 + 는 extend() 함수와 동일하게 작용하지만
# 비파괴적이다.
# a = a + [5, 6, 7, 8]
# 요소 제거 : del, pop(), remove(), clear()
a = [1, 2, 3]
del a[0] # 제거하고 싶은 인덱스 입력
print(a) # [2, 3]
a.pop(0) # 제거하고 싶은 인덱스 입력(기본값 -1)
print(a) # [3]
a.remove(3) # 제거하고 싶은 요소를 입력
print(a) # []
a.clear() # 모든 요소를 제거
print(a) # []
# 요소 정렬 : sort()
a = [52, 273, 1, 7, 9, 103, 58, 201]
a.sort()
print(a) # 오름차순으로 출력
a.sort(reverse=True)
print(a) # 름차순으로 출력
# 요소 존재를 확인 : in, not in
print(52 in a) # True
print(0 in a) # False
print(52 not in a) # False
'Base > Python' 카테고리의 다른 글
7. 딕셔너리와 반복문 (0) | 2023.02.15 |
---|---|
6. for 반복문과 리스트, 항등원, 전개 연산자 (0) | 2023.02.11 |
4. Bool/if 조건문 (0) | 2023.02.08 |
3. format, split 함수 / f-문자열 / 파괴적 연산과 비파괴적 연산 / 온라인 저지 (0) | 2023.02.07 |
2. 변수/복합대입연산자/input()/파이썬 튜터 (0) | 2023.02.06 |
댓글