안녕세계
[방법1] t = ((1, 'a'), (2, 'b')) ret = dict((y, x) for x, y in t) print(ret) # {'a': 1, 'b': 2} [방법2] *recommend t = ((1, 'a'), (2, 'b')) ret = dict(map(reversed, t)) print(ret) # {'a': 1, 'b': 2}Referenceshttps://stackoverflow.com/questions/3783530/python-tuple-to-dict
Iteratorcollection(list, tuple, set, dict), 문자열 등은 for문을 사용해여 데이터를 하나씩 처리할 수 있습니다.이 처럼 데이터를 하나씩 처리할 수 있는 collection이나 sequence를 Iterable Object라고 합니다.# List Iterable for n in [1, 2, 3]: print(n) # String Iterable for x in 'HelloWorld': print(x) 파이썬 built-in 함수 iter()는 iterator를 리턴합니다.iterator는 next()를 사용하여 다음 element를 가져옵니다.만약, 더이상 next() element가 없을 경우 StopIteration Exception을 발생시킵니다.m_list = [..
파이썬에는 switch 문이 없지만 switch 문과 동일한 기능을 하는 함수를 만들어 사용할 수 있습니다. [방법1] 함수로 구현한 switch 문 def switch(value): return { 'a': 'Apple', 'b': 'Banana' }.get(value, -1) # value 값이 존재하지 않을때 default 값으로 -1을 반환합니다. print(switch('a')) # Apple print(switch('c')) # -1 [방법2] 함수로 구현한 lambda switch 문 def switch(value): return { 'a': lambda x: x*10, 'b': lambda x: x+10 }[value](10) print(switch('a')) # 100 [템플릿1] res..
파이썬에서 활용되는 복사 유형에 대해 알아봅니다. 단순복사- 단순복사는 완전히 동일한 객체를 복사합니다.a = [1, [2, 3, 4]] b = a # b는 a와 같은 객체 주소를 바라 봅니다. print(b) # [1, [2, 3, 4]] b[0] = 100 b[1][0] = 100 print(a) # [100, [100, 3, 4]] print(b) # [100, [100, 3, 4]] * immutable 객체는 해당하지 않습니다.- immutable 참조변수를 수정하는 것은 값을 바꾸는 것이 아니라 새로운 객체를 할당하는 것입니다.a = 1 b = a print(b) # 1 b = 2 print(a) # 1 print(b) 얕은복사(shallow copy)# 방법1 b = copy.copy(a) ..
list에서 element 개수를 세는 방법에 대해 알아봅니다. 특정 element 개수 세기numbers = [1, 2, 3, 4, 1, 2, 1] ret = numbers.count(1) print(ret) # 3 모든 element 개수 세기from collections import Count numbers = [1, 2, 3, 4, 1, 2, 1] ret = Counter(numbers) print(ret) # Counter({1: 3, 2: 2, 3: 1, 4: 1}) print(dict(ret)) # {1: 3, 2: 2, 3: 1, 4: 1} for key in ret: print('key:', key, 'value:', ret[key]) # key: 1 value: 3 # key: 2 va..
list에서 dictionary를 정렬하는 방법에 대해 알아봅니다.people = [ {'name': 'kim', 'age': 10}, {'name': 'lee', 'age': 20}, {'name': 'park', 'age': 30}, {'name': 'choi', 'age': 40}, {'name': 'kim', 'age': 50}, ] [방법1] sorted()+ lambda - sorted()와 lambda를 사용하여 name으로 오름차순 정렬 후 age로 오름차순 정렬하는 방법입니다.data = sorted(people, key=lambda person: (person['name'], person['age'])) for d in data: print(d) # {'name': 'choi', 'ag..
파이썬에서 .sort() 메서드와 built-in 함수 sorted()의 차이를 알아봅니다. .sort()list.sort([reverse=][, key=]) - 원본 리스트를 정렬하되 반환 값은 None 입니다.- 원본 리스트의 순서를 변경합니다. (원본 리스트에 영향 있음) 예제l1 = [1, 3, 2] print(l1.sort()) # None print(l1) # [1, 2, 3] sorted()sorted(iterable[, key=][, reverse=]) - 정렬된 새로운 리스트를 반환합니다. (원본 리스트에 영향 없음)- 모든 iterable에 동작합니다. (list, tuple, dict, 문자열 등) 예제l2 = [1, 3, 2] print(sorted(l2)) # [1, 2, 3] p..
파이썬 표준 라이브러리인 logging을 활용하여 로그를 남기는 방법에 대해 알아봅니다. [방법1] stream에 로그 남기기- 스트림(콘솔)에 로그를 찍기 위해 logging을 사용합니다.import logging logging.info('my INFO log') logging.warning('my WARNING log') # WARNING:root:my WARNING log위 코드를 실행하면 warning level만 출력되는 이유?- logging의 default log level이 warning으로 되어있기 때문입니다. 다음 처럼 logging의 basicConfig level을 변경하면 됩니다.import logging logging.basicConfig(level=logging.DEBUG) l..