arr 에서 divisor로 나눠떨어지는 것만 리스트로 반환하는 문제인데
이런식으로 or 넣어서 앞의 표현식이 false면(여기선 빈배열 []) 당연히 뒤에 [-1]이 반환되므로
아래와 같이 코드를 짤 수 있다.
def solution(arr, divisor):
# answer = [i for i in sorted(arr) if i % divisor == 0]
# return answer if len(answer) > 0 else [-1]
return [i for i in sorted(arr) if i % divisor == 0] or [-1]
이거는.. == 의 경우만 예상한 결과랑 다른데 관련 내용 찾기가 어려웠다..
print([] == True) # False
print([] == False) # False 왜..?
print([] or [-1]) # [-1]
if []: print(True) # False
else : print(False)
# 이건 관련 내용을 찾기가 어려웠다..
print(0 == False) # True
print('' == False) # False
print([] == False) # False
print({} == False) # False
str.maketrans(기존, 변경, 제외)
문자열 일부를 지정 문자로 대체 정의하는 매핑 테이블(딕셔너리) 생성
문자열변수명.maketrans(바꿀 기존 문자들, 기존 문자들을 바꿀 결과 문자들, 그 와중에 제거할 문자들)
이렇게 한 결과를 밑에 함수에 넣어서
str.translate(번역 매핑 테이블)
바꿔야할 문자를 매핑 테이블에 설정된 값으로 변환 하고 변환된 문자열을 반환
매핑 테이블을 .maketrans() 없이 dictionary 바로 사용 시, 반드시 아스키 (ASCII) 코드로.
문자열변수명.translate(위에 maketrans의 리턴)
str = "KeepayInayTouchay."
x = "KIT"
y = "kit"
mapdict = str.maketrans(x, y)
print(mapdict)
print(str.translate(mapdict))
#{75: 107, 73: 105, 84: 116}
#keepayinaytouchay.
str = "KeepayInayTouchay."
x = "KIT"
y = "kit"
z = "ay."
mapdict = str.maketrans(x, y, z)
print(mapdict)
print(str.translate(mapdict))
#{75: 107, 73: 105, 84: 116, 97: None, 121: None, 46: None}
#keepintouch
'코테 공부 > python' 카테고리의 다른 글
Python 외계어 사전, 요소 제거하면서 for문을 돌리면.. (0) | 2023.06.07 |
---|---|
Python and or not 연산자 (0) | 2023.06.06 |
Python f-string , 정렬 (0) | 2023.06.05 |
[백준] Python 코테 스터디 -수들의 합 (그리디) (0) | 2023.06.05 |
Python 캐릭터의 좌표 (0) | 2023.06.05 |