list_name.sort(reverse=True)
sorted(list_name, reverse=True)
둘 다 내림차순 정렬 가능
근데
for s in list_name.sort():
처럼 쓰면 오류 난다는 얘기다new_list = sorted( )
로 써야한다 = 반환을 하는 애다 = 변수에 대입을 안 해주면 해당 리스트는 정렬이 안 되어있다같은 맥락으로
정렬할거.reverse(), reversed(정렬할거)
도 이해하면 된다
근데 reversed는 tuple, str인 경우엔 reversed 객체를 반환하니
# 문자열str은
new_str = list(reversed(정렬할거))
new_str = ''.join(new_str)
이런 단계를 거쳐야한다.
그리고 다차원일 때 정렬하면 첫번째 원소 기준으로 정렬된다.
dictionary에 키가 똑같은데 value는 다른 게 여러 개 있으면 다 찾아주지 않는다(확실) 맨 마지막 키의 밸류를 반환하는 거 같다(추측)
a = {'a': 65, 'b': 66}
b = {v: k for k, v in a.items()}
mutable 수정할 수 있는
iterable 연속 발생시키는
subscriptable 다른 개체를 포함하는 컨테이너같은 개체, 인덱싱할 수 있는
inconsistent use of tabs and spaces in indentation 들여쓰기 탭이랑 띄어쓰기랑 섞어썼을 때
함수 안에서 만든 변수가 밖에서도 통용되길 바란다면 해당 함수 안에서 global로 선언해준 뒤 사용하면 된다.
def 함수():
global a
a = 123
fun()
print(a)
근데 함수 안에서 global 선언할 때는 맨 첫줄에 해주는 게 안전하다.
up에서는 얌전하다가 down에서는 난리난 거 보이는지
name 'y' is used prior to global declaration 이런 오류가 뜬다.
왜인지는.. 차차 알아보자...
밖에서 만든 변수를 함수 안에서 사용하는 것도 비슷하게 가능하다.
밖에서 만든 변수를 함수 안에서 변경한 후 return 해줬어도
처럼 실행했을 때 밖에서 안 받아주면 바깥에서는 변경이 안 되어있음
문자열에 쓰는 replace, strip같은 함수들은
string.replace('바꿀거', '대체재') # 이러면 적용이 안 됨
string = string.replace('바꿀거', '대체재') # 대입을 해줘야 됨
list는 서랍장같은 느낌
칸마다 뭐가 들어있게 하는 거라서
앞이나 중간쯤에서 빼거나 추가하면
그 뒤부터 다같이 한칸씩 이동하느라 O(N)
뒤에서 추가(append)하는 건 괜찮지만...
아니라면 효율이 매우 떨어진다.
deque는 찰흙같은 느낌
그냥 떼어내면 되는 거라서 O(1)
메소드 .append() 이런 형태로 쓰는 거 쭉 불러줄게
len(deq)도 가능하고 list와 별 차이 없음, count는 비슷하거나 덱이 좀 더 걸림