반응형

오늘 우연히 요기요에서 근무하시는 개발자분의 인터뷰를 읽었습니다. 반갑게도 요기요는 파이썬으로 업무가 이루어지고 있었습니다. 인터뷰 내용 중 가장 인강 깊었던 말은 어떤 언어를 사용하던 해당 언어스럽게 개발을 해야 된다는 것이였습니다.

 

그동안 Java 위주로 학습을 해왔던 터라, 상당 부분이 파이썬스럽지 않습니다. 그래서 앞으록 되도록 파이썬스럽게 코드를 작성하려고 노력하려고 합니다.

 

제가 기존에 다중 list를 배열한 방법은 아래와 같습니다.

'''
입력 값
5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
'''

n = int(input())
a = [[0]*n]*n

for i in range(n):
    a[i] = list(map(int, input().split()))

파이썬은 위와 같은 여러 줄로 된 코드를 한 줄로 줄일 수 있습니다.

n = int(input())
a = [list(map(int, input().split())) for _ in range(n)]

학습하면 할 수록 파이썬의 코드 작성 방법에 놀라움을 감추지 못하고 있습니다.

하루 빨리 파이썬스러워 지고 싶습니다.

반응형
반응형

파이썬에는 Slicing 이라는 문법이 있습니다.

이는 파이썬의 매우 큰 장점이라고 생각합니다. 이유는 코드의 가독성을 높여주고, 변수 선언을 줄일 수 있기 때문입니다.

 

※ For문 사용하기

# 2 ~ 4번째 원소만 저장하기
a = [1, 2, 3, 4, 5]
b = []
for i in range(1, 4):
	b.append(a[i]

Slicing 사용하기

a = [1, 2, 3, 4, 5]
a = a[1:4]

이처럼 변수를 새로 선언하여 메모리를 낭비 안할 수 있고, 코드를 많이 줄일 수 있습니다. 

 

 

반응형
반응형

10진수에서 2진수, 8진수, 16진수로 변환

내장함수 사용

# -*- Encoding:UTF-8 -*- #

num = 17

a = bin(num)
b = oct(num)
c = hex(num)

print(a)
print(b)
print(c)

Format 사용 (1)

# -*- Encoding:UTF-8 -*- #

num = 16

a = format(int(num), '#b')  # Bin
b = format(int(num), '#o')  # Oct
c = format(int(num), '#x')  # heX

print(a)
print(b)
print(c)

Format 사용 (2)

num = 10

a = format(int(num), 'b')  # Bin
b = format(int(num), 'o')  # Oct
c = format(int(num), 'x')  # heX

print(a)
print(b)
print(c)
반응형
반응형

동빈나님의 파이썬(Python) 입문자용 초급 36장을 정리한 내용입니다.

 

Dictionary : 키(Key)와 값(Value)로 한 쌍을 원소로 가지는 자료형.

 

딕셔너리 선언

dict = {}

dict['안녕'] = 'Hello'
dict['기적'] = 'Miracle'
dict['노력'] = 'effort'
dict['안녕'] = 'Hi'

print(dict)
# >> {'안녕': 'Hi', '기적': 'Miracle', '노력': 'effort'}

print(dict['안녕'])
# >> Hi
# Key를 입력하면 Value를 반환

딕셔너리 삭제

dict = {}
dict['안녕'] = 'Hi'
dict['기적'] = 'Miracle'
dict['노력'] = 'effort'


del dict['기적']
print(dict)
# >> {'안녕': 'Hi', '노력': 'effort'}

딕셔너리 초기화

 dict.clear()

딕셔너리의 Key 혹은 Value 만 출력하기

dict = {}
dict['안녕'] = 'Hello'
dict['기적'] = 'Miracle'
dict['노력'] = 'effort'
dict['안녕'] = 'Hi'

# Key 출력
keys = dict.keys()
keys_list = list(keys)

# Value 출력
values = dict.values()
values_list = list(values)

# 확인
print(keys_list)
print(values_list)

딕셔너리 For문 활용

dict = {}
dict['안녕'] = 'Hello'
dict['기적'] = 'Miracle'
dict['노력'] = 'effort'
dict['안녕'] = 'Hi'

# i = index
# k = Key
for i, k in enumerate(dict):
    print("[인덱스 : ", i, "]", "한글 : ", k, "/ 영어 : ", dict[k])

딕셔너리 정렬

score = {}
score['호우박'] = 78
score['구우독'] = 99
score['좋아요'] = 85

# Key로 정렬(1)
print(sorted(score))

# Key로 정렬(2)
print(sorted(score.keys()))

# Key로 내림차순 정렬(1)
print(sorted(score, reverse=True))

# Key로 내림차순 정렬(2)
print(sorted(score.keys(), reverse=True))

# Value로 정렬
print(sorted(score.values()))

 

반응형

+ Recent posts