오늘은 코테하면서 기억이 안나서 안타까웠던 거 정리하기
정렬하기
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
'코딩공부' 카테고리의 다른 글
[파이썬 크롤링] 셀레니움을 이용한 웹 스크래핑 실습 (0) | 2023.08.21 |
---|