일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- boto3
- OS
- sort(reverse=True) v.s. reverse
- slicing [::-1]
- S3
- Airflow
- decorator
- sort v.s. sorted
- selenium-wire
- 고차함수
- 함수형 프로그래밍
- ds_store
- pandas
- blinker
- r-string
- Python
- [초급(예비) 개발자 오픈소스 실무 역량강화 교육]
- timestamp
- functools.wraps
- reverse v.s. reversed
- 생각
- os.path
- 쿼리
- 코딩 테스트
- CI/CD
- 순수함수
- PIP
Archives
- Today
- Total
공부일지
[Python]sort v.s. sorted, sort(reverse=True) v.s. reverse, reverse v.s. reversed, 리스트 슬라이싱 [1:2:-1]과 [1:2:][::-1] 차이 본문
Computer/공부정리
[Python]sort v.s. sorted, sort(reverse=True) v.s. reverse, reverse v.s. reversed, 리스트 슬라이싱 [1:2:-1]과 [1:2:][::-1] 차이
이르리의 공부일지 2023. 8. 8. 13:47알고리즘 문제 풀면서 메소드와 내장함수 헷갈렸던 것들 정리합니다.
목차
- sort v.s. sorted
- sort(reverse=True) v.s. reverse
- reverse v.s. reversed
- 리스트 슬라이싱 [1:2:-1]과 [1:2:][::-1] 차이
1. sort sorted 차이
구분 | .sort() | sorted() |
함수 | 메소드 | 내장함수 |
정렬 대상 | 리스트만 | iterable(리스트, 튜플, 스트링 등) |
정렬 후 | -원본 정렬 -print()로 확인 |
정렬된 객체를 리스트로 바로 반환 (확인용) |
내림차순 | 리스트명.sort(reverse=True) | sorted(리스트명, reverse=True) |
2. sort(reverse=True)와 reverse 차이
구분 | .sort(reverse=True) | .reverse() |
함수 | 메소드 | 메소드 |
정렬 대상 | 리스트만 | 리스트만 |
정렬 후 | -원본 정렬 -print()로 확인 |
-원본 정렬 -print()로 확인 |
정렬 분류 | 내림차순 | 리스트 내 객체 순서만 반대로, 거꾸로 |
정렬 예시 ex. 리스트 = [3, 1, 2, 4] | >>print(리스트) [4, 3, 2, 1] |
>>print(리스트) [4, 2, 1, 3] |
3. reverse와 reversed 차이
구분 | .reverse() | reversed() |
함수 | 메소드 | 내장함수 |
정렬 대상 | 리스트만 | iterable(리스트, 튜플, 스트링 등) |
정렬 후 | -원본 정렬 -print()로 확인 |
정렬된 객체를 리스트로 바로 반환 (확인용) |
순서만 반대로, 거꾸로 | 리스트명.reverse() | reversed(리스트명) |
결론
1.
수동태 모양 → 파이썬 내장함수, iterable 대상
.동사/형용사 모양 → 메소드, 특정 객체타입 대상
2.
옵션 reverse= True : 내림차순
함수 reverse, reversed : 순서 반대로, 역순, 거꾸로
(※ 근데 이제 '역순'이란 단어는 '내림차순'같이 쓰일 때가 있어 헷갈리니까 '내림차순'과 '거꾸로'로 각각 기억하자)
1. append insert extend 차이
(1) array.append(x) : array 내부 객체 맨 끝에 다음 타자로 덧붙인다.
li=[1, 2, 3, 4], x = 9
li.append(x)
print(li)
# [1, 2, 3, 4, 9]
y=[a, b]
li.append(y)
print(li)
# [1, 2, 3, 4, [a, b]]
(2) array.extend( iterable ) : iterable 안의 객체를 array 내부 객체 맨 끝에 다음 타자로 넣어 배열을 확장시킨다.
li=[1, 2, 3, 4], x = 9
li.append(x)
print(li)
# [1, 2, 3, 4, 9]
y=[a, b]
li.append(y)
print(li)
# [1, 2, 3, 4, [a, b]]
(3) array.insert( i, iterable )
li=[1, 2, 3, 4], x = 9
li.insert(0, x)
print(li)
# [9, 1, 2, 3, 4]
li=[1, 2, 3, 4], x = 9
li.insert(2, x)
print(li)
# [1, 2, 9, 3, 4]
li.insert(-1, x), y=[a, b]
print(li)
# [1, 2, 3, [a, b], 4]
li.insert(len(li), x), y=[a, b]
print(li)
# [1, 2, 3, 4, [a, b]]
"""
반대방향으로 한칸 전에 넣어주려면 li.insert(-1, x) 꼴
마지막 자리에 넣어주려면 li.insert(마지막 인덱스 번호, x)꼴 혹은 li.insert(len(li), x)꼴
"""
2. 인덱싱 슬라이싱
리스트[i] : 인덱싱
리스트[i : j : k] : 슬라이싱 start, end, step 음수 가능(역순)
차이
-인덱싱은 특정 원소 위치 반환
-슬라이싱은 리스트 내 범위 지정해 해당 객체 가져온다
li=[1, 2, 3, 4]
print(li[0]) # 1
print(li[1:3]) # 2, 3, 4
print(li[1:3:-1]) # 4, 3, 2
print(li[1:2:]) # 2, 3
print(li[1:2:-1]) # None
print(li[1:2:][::-1]) # 3, 2
이유: -1은 해당 리스트의 마지막 원소를 의미
인덱스 2번은 마지막 원소가 아니기 때문에 안 된다.
그래서 1부터 2번 인덱스까지의 값을 가지는 리스트를 생성한 뒤 슬라이싱을 해주는 방법이 있다.
'Computer > 공부정리' 카테고리의 다른 글
[Python]No python at "C:Users\..." (0) | 2023.08.14 |
---|---|
[Python]reversed()로 거꾸로된 리스트 출력 (0) | 2023.08.13 |
[컴활 1급 실기] 액세스_요약정리_ing (0) | 2023.07.23 |
230609_python 가상환경 간단 진입 방법(no anaconda) (0) | 2023.06.09 |
230604~230605_알고리즘, 데이터 구조 with Nico (0) | 2023.06.05 |