배열: 묶음 단위로 값 저장
객체 하나하나를 원소, 각 원소는 인덱스 부여받음
서로 다른 자료형 같이 저장 가능
리스트는 원소 변경할 수 있는 뮤터블 객체
원소값 없는 none리스트 생성 가능 ex) [None]*5
원소 하나면 뒤에 쉼표 붙이기
( )로 둘러쌈, 생략가능
x = [1,2,3]
a, b, c = x
a, b, c # (1,2,3)
s[i : j : k]
= s[i]부터 s[j]까지 k씩 건너뛰며 나열, k 생략 가능s[::-1]
역순으로 출력
💡 s[3:1] -> 오류 나지 않음자료구조는 논리적인 관계로 이루어진 데이터 구성, 데이터가 모여있는 구조
if x
: x가 비어있지 않으면 True, else
: x가 비어있으면 False
배열끼리 대소, 등가 판단
twise = [num * 2 for in numbers if num % 2 == 1]
from typing import Any, Sequence
Any는 제약이 없는 임의의 자료형, Sequence는 시퀀스형(리스트, 튜플, 문자열)
def max_of(a: Sequence) - > Any:
건네받은 매개변수 a의 자료형은 Sequence입니다
반환하는 것은 임의의 자료형 Any입니다
__name__
은 모듈 이름을 나타내는 변수
__name__
은 ‘__main__’
__name__
은 원래의 모듈 이름enumerate(x)
: 0부터 인덱스 카운트
for i, idx in enumerate(list):
값과 인덱스를 동시에 사용 가능
def card_conv(x, r):
d = '' # 변환 후 문자열
dchar = '0123456789ABCDEFGHIJKLMN'
while x > 0:
d += dchar[x % r] # 나머지값의 인덱스에 해당하는 문자 추가
x //= r # x 는 x // r
return d[::-1] # 역순으로 반환
# 소수 판별 알고리즘
num = 0 # 찾은 소수 개수
sosu = [None] * 500 # 소수 리스트
sosu[num] = 2 # 리스트 첫번째에 2 저장
num += 1
sosu[num] = 3 # 리스트 두번째에 3 저장
num += 1
for n in range(5, 1001, 2): # 홀수만 대상으로 반복
i = 1
while sosu[i] * sosu[i] <= n:
if n % sosu[i] == 0: # 찾은 소수로 나누어 떨어지면 소수 아니므로 종료
break
i += 1
else: # 나누어 떨어지지 않으면
sosu[num] = n # 소수이다
num += 1
print(sosu)
copy()
하면 처음 리스트의 원소값 변경해도 같이 바뀐다.import copy
필요)