정렬, 원소 포함 여부, 인덱싱
sort는 반환값이 없지만, sorted는 반환값이 있음
✔️ sort
N = [3, 5, 2, 1, 7, 8]
N.sort()
>> [1, 2, 3, 5, 7, 8]
N = ["e","d", "c", "b", "a"]
N.sort()
>> ['a', 'b', 'c', 'd', 'e']
N = [5, "d", "c", 2, "a", 1]
N.sort() # 타입이 섞여있을 경우 정렬 불가능
>> TypeError: '<' not supported between instances of 'str' and 'int'
reversed=True를 통해 내림차순(DES)으로 정렬
N = [3, 5, 2, 1, 7, 8]
N.sort(reverse=True)
>> [8, 7, 5, 3, 2, 1]
✔️ sorted
N = [3, 5, 2, 1, 7, 8]
M = sorted(N)
>> N = [3, 5, 2, 1, 7, 8]
>> M = [1, 2, 3, 5, 7, 8]
reversed=True를 통해 내림차순(DES)으로 정렬
N = [3, 5, 2, 1, 7, 8]
M = sorted(N, reverse=True)
>> N = [3, 5, 2, 1, 7, 8]
>> M = [8, 7, 5, 3, 2, 1]
✔️ 튜플
튜플의 맨 앞 원소를 기준으로 정렬
N = [(2, 4, 5), (1, 6, 2), (8, 3, 4), (4, 6, 2), (5, 9, 4)]
N.sort() # 맨 앞이 아닌 다른 원소로 판단하고 싶다면 lambda 사용
>> [(1, 6, 2), (2, 4, 5), (4, 6, 2), (5, 9, 4), (8, 3, 4)]
M = sorted(N)
>> [(1, 6, 2), (2, 4, 5), (4, 6, 2), (5, 9, 4), (8, 3, 4)]
맨 앞이 아닌 다른 원소로 판단하고 싶다면 lambda 사용
N.sort(key=lambda x: x[2]) # x[2]를 기준으로 정렬
>> [(1, 6, 2), (4, 6, 2), (8, 3, 4), (5, 9, 4), (2, 4, 5)]
N.sort(key=lambda x: (x[2], x[0])) # x[2] 다음 x[0]을 기준으로 비교
>> [(1, 6, 2), (4, 6, 2), (5, 9, 4), (8, 3, 4), (2, 4, 5)]
✔️ in
N = [1, 2, "a", 3, "b"]
print("a" in N)
>> True
print(5 in N)
>> False
✔️ not in
N = [1, 2, "a", 3, "b"]
print("a" not in N)
>> False
print(5 not in N)
>> True
✔️ not
N = [] # 비어있는 리스트
print(not N)
>> True
N = [1, 2, 3] # 비어있지 않은 리스트
print(not N)
>> False
✔️ 양수
N = [1, 2, "a", 3, "b", 4]
print(N[2])
>> a
print(N[9]) # 리스트 크기를 초과한 인덱싱은 IndexError
>> IndexError: list index out of range
✔️ 음수
N = [1, 2, "a", 3, "b", 4]
print(N[-1])
>> 4
print(N[-6])
>> 1
print(N[-13]) # 리스트 크기를 초과한 인덱싱은 IndexError
>> IndexError: list index out of range