반응형
[주절주절]
하루만에 밀리다니...
[Today I Learned]
# isalpha(), isalnum()
- 제약 조건에 대한 전처리를 위해 사용할 수 있다.- isalpha는 문자열이 영어 혹은 한글일 경우 참을, 그렇지 않을 경우 거짓을 return한다.
- iaslnum은 문자열이 영어, 한글, 혹은 숫자로 되어 있을 때 참을 return한다.
+ 회문 검사
def is_palindrome(sentence:str) -> bool:
strs = []
for char in sentence:
if char.isalnum():
strs.append(char.lower())
while len(strs) > 1:
if strs.pop(0) != strs.pop():
return False
return True
코테감수성(?)을 좀 길러야 할 것 같다.🙄
# Deque
- 앞, 뒤 양쪽 방향에서 element를 추가, 제거할 수 있는 양방향 큐이다.
- Deque는 양 끝 element의 append와 pop이 아주 빠르다. (특히 list에 비해!)
- Deque는 다음과 같이 import해 사용하며, 이러한 method들이 있다.
from collections import deque
deq = deque()
deq.append(item) # 오른쪽 끝 아이템 삽입
deq.appendleft(item) # 왼쪽 끝 아이템 삽입
deq.pop()
deq.popleft()
deq.extend(array)
deq.extendleft(array)
deq.remove(item)
deq.rotate(num) # deque를 num만큼 회전
# 문자열 슬라이싱
- 빠르게 동작하는 파이썬의 강력한 기능 💪
- 문자열을 조작할 때는 슬라이싱을 우선으로 사용하는 것이 속도 개선에 유리하다!
- 몰랐던 문자열 슬라이싱 방법! ↓
S = '안녕하세요'
s[::-1] == 요세하녕안
s[::2] == 안하요
+ 문자열 뒤집기
def reverse_string(s):
s = [char for char in s]
print(f'array: {s}')
left, right = 0, len(s) -1
while left < right:
s[left], s[right] = s[right], s[left]
left += 1
right -= 1
print(f'result: {s}')
투 포인터 스왑 방식
위와 같이 한 줄에서 스왑을 처리하면 tmp를 통해 값을 저장하지 않아도 된다.
그런데 문자열 슬라이싱을 사용하면 더 빠르게 처리할 수 있다.
def reverse_string(s):
s = [char for char in s]
print(f'array: {s}')
s = s[::-1]
# s[:] = s[::-1]
# s.reverse()
print(f'result: {s}')
[질문 노트]
-
반응형
'컴린이 일기장 > Today I Learned' 카테고리의 다른 글
[TIL] 파이썬 pass, continue, break / 선형자료구조 (배열, 스택) (0) | 2021.07.19 |
---|---|
[TIL] 파이썬 정렬 함수 / Counter / defaultdict (0) | 2021.07.15 |
[TIL] 부동소수점 / 빅오(시간복잡도) / Python 자료형 (0) | 2021.07.12 |
[TIL] Python getattr()과 import_module (0) | 2021.04.04 |
[TIL] Python Multiprocessing (1) | 2021.03.30 |