2019. 6. 17. 18:12ㆍ서버 프로그래밍
http://codingdojang.com/scode/493
from itertools import zip_longest
def compare(left, right):
left_vars = map(int, left.split('.'))
right_vars = map(int, right.split('.'))
for a, b in zip_longest(left_vars, right_vars, fillvalue = 0):
if a > b:
return '>'
elif a < b:
return '<'
return '='
여기서 주의할 점은 for 문 안에서 equal은 체크하면 안된다는 것이다. 비교 도중 크거나 작으면 return을 하도록 되어 있는데 eaual이 들어가면 비교 도중에 리턴이 될수도 있기 때문에 오동작을 한다. 이것 때문에 헛고생을 했다. ㅠㅠ
위의 예제에는 그냥 map만 사용했는데 이것은 Python 2.x에서만 사용되는 것으로 보인다. 다음과 같이 list로 감싸주면 숫자 배열로 결과를 만들어 준다.
results = list(map(int, results))
https://stackoverflow.com/questions/7368789/convert-all-strings-in-a-list-to-int
zip_longest() 함수에 대한 설명은 다음 내용을 참고하자.
https://excelsior-cjh.tistory.com/100