리스트 안에서 for 문 사용하기
[ 표현식 for 항목 in 리스트 or 튜플 if 조건문 ]
if문은 생략가능
sum([int(i) for i in str(n)]) # 숫자 각 자리수 더하기
while문
while num != 1: # 조건
if answer > 500: # 수행할 문장
return -1
num = num / 2 if num % 2 == 0 else num * 3 + 1
answer += 1
python은 증감연산자x
# 다른 언어
i++;
i--;
++i;
--i;
# Python
i += 1
i -= 1
array[::] (Extended Slices)
arr[A:B:C]의 의미 : index A 부터 index B 까지 C의 간격으로 배열을 생성
# ex)
arr = range(10)
arr [0,1,2,3,4,5,6,7,8,9]
arr[::2] # 처음부터 끝까지 두 칸 간격으로 [0,2,4,6,8]
arr[1::2] # index 1 부터 끝까지 두 칸 간격으로 [1,3,5,7,9]
arr[::-1] # 처음부터 끝까지 -1칸 간격으로 ( == 역순으로) [9,8,7,6,5,4,3,2,1,0]
arr[::-2] # 처음부터 끝까지 -2칸 간격으로 ( == 역순, 두 칸 간격으로) [9,7,5,3,1]
arr[3::-1] # index 3 부터 끝까지 -1칸 간격으로 ( == 역순으로) [3,2,1,0]
arr[1:6:2] # index 1 부터 index 6 까지 두 칸 간격으로 [1,3,5]
list.sort() / sorted(list)
list.sort()는 list 자체를 정렬
sorted(list)는 list는 내버려두고, 정렬한 새로운 list를 반환
list = [1, 3, 2, 5, 4]
print(sorted(list)) # [1, 2, 3, 4, 5]
print(sorted(list, reverse=True))) # [5, 4, 3, 2, 1]
list.reverse() / reversed(list)
list.reverse()는 list 자체를 역순으로
reversed(list)는 list는 그대로 두고, list를 역순으로 해서 object의 속성을 반환 => 타입을 list로 지정해주거나 join으로 묶어야 함
list1 = [1, 2, 3]
list1.reverse()
print(list1) # [3, 2, 1]
list2 = ['a', 'b', 'c']
print(reversed(list2)) # <listreverseiterator object at 0x104de9b48>
print(list(reversed(list2))) # ['c', 'b', 'a']
print("".join(reversed(list2))) # "cba"
삼항연산자
참인경우 값 if 조건 else 거짓인경우 값
ex1)
print("짝수" if num % 2 == 0 else "홀수")
ex2)
num = num / 2 if num % 2 == 0 else num * 3 + 1 # 조건 참 거짓에 따라 대입도 다르게 할 수 있다.
min(), max()
list에서 최소값 찾기 min(list)
list에서 최대값 찾기 max(list)
시간복잡도 O(n)
math 라이브러리 함수
import math를 통해 math 라이브러리 import
math.pow(x, y)
x의 y 거듭제곱(x의 y승)을 반환
math.sqrt(x)
x의 제곱근을 반환(√x)
float타입으로 반환
음수가 들어오면 error발생