enumerate()
- 여러가지 자료형(리스트, 셋, 튜플 등)을 인덱스 포함한 enumerate 객체로 리턴함
a = [1, 2, 3, 2, 45, 2, 5]
>>> list(enumerate(a))
>>> [(0, 1), (1, 2), (2, 3), (3, 2), (4, 45), (5, 2), (6, 5)]
반복문 else
- for와 같은 레벨에 있는 else문은 반복문 else이다.
- for문이 중간에 break로 중단되지 않고 끝까지 모든 반복이 실행된 경우에만 else 블록이 실행된다!
for i in range(len(before)):
if before[i] == after[i]:
print("Deletion failed")
break
# for와 같은 레벨에 있는 else문은 반복문 else이다.
# for문이 중간에 break로 중단되지 않고 끝까지 모든 반복이 실행된 경우에만 else 블록이 실행된다!
else:
print("Deletion succeeded")
리스트 컴프리헨션 List Comprehension
리스트 컴프리헨션
N차원 리스트 정렬
행 기준으로 정렬하기
첫 번째 값을 기준으로 오름차순 정렬
arr = [[2,3],[1,2],[0,4]]
arr.sort(key=lambda x:x[0])
print(arr)
# [[0, 4], [1, 2], [2, 3]]
내림차순 정렬
arr = [[2,3],[1,2],[0,4]]
arr.sort(key=lambda x: -x[0])
print(arr)
# [[2, 3], [1, 2], [0, 4]]
열 기준으로 정렬하기
두 번째 값을 기준으로 오름차순 정렬
arr = [[2,3],[1,2],[0,4]]
arr.sort(key=lambda x:x[1])
print(arr)
# [[1, 2], [2, 3], [0, 4]]
두 번째 값이 같을 경우에는 첫 번째 값을 기준으로 오름차순 정렬
arr = [[2, 3], [1, 2], [0, 4], [2, 2]]
arr.sort(key=lambda x: (x[1], x[0]))
print(arr)
# [[1, 2], [2, 2], [2, 3], [0, 4]]
문자열 뒤집기
- 내장함수 reversed
reversed(str)
은 이터레이터(Iterator)를 반환하기 때문에''.join
을 이용하여 문자열로 변환해야 함- **이터레이터: 순서대로 다음 값을 리턴할 수 있는 객체를 의미함
string = "ABCDE"
reverse_str = ''.join(reversed(string))
print(reverse_str) # EDCBA
리스트 삽입 append vs extend
list.append(x)
는 리스트 끝에 x 1개를 그대로 넣고,list.extend(iterable)
는 리스트 끝에 가장 바깥쪽 iterable의 모든 항목을 넣음
# append 와 extend 차이
x = ['a', 'b', 'c']
y = ['d', 'e']
x.append(y)
# 출력 : ['a', 'b', 'c', ['d', 'e']]
x = ['a', 'b', 'c']
y = ['d', 'e']
x.extend(y)
# 출력 : ['a', 'b', 'c', 'd', 'e']
아스키 코드
- 아스키 코드
print(ord("A"))
# 65
print(ord("B"))
# 66
print(chr(65))
#A
print(chr(66))
#B
# A에서 두 번째 후의 숫자
print(chr(ord("A") + 2))
# C