[Python] 리스트 정렬하기
오늘은 코테하면서 기억이 안나서 안타까웠던 거 정리하기
정렬하기
sort는 순서만 정렬하고 원본은 그대로 !
sorted는 원본을 바꿔버리는 것
→ 이걸 아는데 적용을 못함
파이썬 리스트에는 리스트를 제자리에서(in-place) 수정하는 내장 list.sort() 메서드가 있습니다.
또한, 이터러블로부터 새로운 정렬된 리스트를 만드는 sorted() 내장 함수가 있습니다.
역순으로 정렬하기
기본적으로 [::-1]로 역순으로 정렬시킬 수 있다
list = [1,2,3,4,5]
for i in list[::-1]:
print(i)
이렇게 나온다
하지만 reverse가 내가 원했던 것이다
이걸 겨우 기억해냈는데 문제가 뭐냐면
이거였다
코테 중에 찾아볼수도 없어서 더 속터졌음
아무리 reverse 메소드가 리스트를 역순을 취해줘서 list로 보일 수 있을지 몰라도,
reverse 메소드 자체의 반환 값이 없습니다. → NoneType
따라서 루프를 돌릴 수 없습니다.
만약 루프를 돌리고 싶으시면 앞서서 reverse 작업을 하시고 나서 루프를 돌리시는 것을 추천합니다.
sort, sorted처럼
reverse도 reversed라는 함수가 있다
reverse()
배열의 항목 순서를 뒤집습니다.
다른점이라면 reversed(list)라고 적어줘야 한다는 것
파이썬 도큐먼트에 보면
reversed(seq)
Return a reverse iterator. seq must be an object which has a __reversed__() method or supports the sequence protocol (the __len__() method and the __getitem__() method with integer arguments starting at 0).
"역반복 반복기를 반환합니다. seq는 __reversed__() 메서드를 사용하거나 시퀀스 프로토콜(0부터 시작하는 정수 인수로 __len__() 메서드 및 __getitem__() 메서드)을 지원하는 개체여야 합니다."
아래와 같이 써야 작동이 된다
list = [1,2,3,4,5]
for li in reversed(list):
print(li)
결과는 똑같음
참고한 블로그에서는 resevered가 시간이 [::-1]에 비해 오래걸린다고 했다
알고 있으면 좋을 듯
출처 : 파이썬 다큐먼트 (https://docs.python.org/ko/3/howto/sorting.html), https://appia.tistory.com/170
Sorting HOW TO
Author, Andrew Dalke and Raymond Hettinger,, Release, 0.1,. Python lists have a built-in list.sort() method that modifies the list in-place. There is also a sorted() built-in function that builds a...
docs.python.org
파이썬[Python] List 역순으로 만들기 (reversed,reverse)
오늘 포스팅은 뒤로 돌아가는 세상으로 한번 꾸며 보고자 합니다. 다름 아니라, List을 역순으로 즉 거꾸로 뒤에서부터 값을 읽어오는 형태로 루프를 돌리거나, 아니면 리스트를 역순으로 바꾸는
appia.tistory.com