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