배열 뒤집기
🔹 s[::-1]는 슬라이싱(slicing) 문법
s = [1, 2, 3]
rev = s[::-1]
print(rev) # [3, 2, 1] ✅
print(s) # [1, 2, 3] ✅ 원본은 변경되지 않음
🔸 reverse(): 원본 리스트 자체를 뒤집는다
s = [1, 2, 3]
result = s.reverse()
print(result) # None
print(s) # [3, 2, 1] ← 원본이 바뀜
🔸 reversed(): 반복자를 반환
s = [1, 2, 3]
result = reversed(s)
print(result) # <list_reverseiterator object at ...>
print(list(result)) # [3, 2, 1] ← 새로 만들어짐
print(s) # [1, 2, 3] ← 원본 그대로 유지
❗ 오류가 발생하는 경우는?
reversed(map(str, res)) # ❌ 오류: reversed()는 map에 직접 적용 불가
' '.join(reversed(list(map(str, res)))) # ✅ map → list → reversed → OK
문자열 뒤집기
문자열 뒤집을 때는 항상
s[::-1] or ''.join(reversed(s))
.reverse() 없음.
s = "hello"
s.reverse() # ❌ AttributeError: 'str' object has no attribute 'reverse'
'프로그래밍 언어' 카테고리의 다른 글
[Python] 진수 변환 (0) | 2025.04.29 |
---|---|
[Java] Scanner vs BufferedReader (0) | 2023.10.06 |