list
=> 원소를 변경할 수 있는 mutable list형 객체 tuple
=> 원소에 순서를 매겨 결합, 원소를 변경할 수 없는 immutable 자료형. 튜플은 리스트와 다르게 결합 연산자를 생략할 수 있다.append()
, insert()
, remove()
, sort()
, `reverse()에서는 에러가 발생하게 된다! my_list = [1, 2, 3, 4, 5]
my_tuple = (1, 2, 3, 4, 5)
tuple = 1, 2, 3
mutable
vs. immutable
Immutable
: 숫자(number), 문자열(string), 튜플(tuple)Mutable
: 리스트(list), 딕셔너리(dictionary), NumPy의 배열(ndarray)깊은 복사
: 참조값 뿐만 아니라 참고하고 있는 객체 자체를 복사하는 방식copy.deepcopy()
메소드얕은 복사
: 객체를 복사할 때 참조값만 복사하는 방식 copy.copy()
메소드 import copy
# 원본 리스트
original_list = [1, 2, [3, 4]]
# 깊은 복사
deep_copied_list = copy.deepcopy(original_list)
# 변경 전 출력
print("Original List:", original_list)
print("Deep Copied List:", deep_copied_list)
# 내부 리스트 변경
original_list[2][0] = 'a'
# 변경 후 출력
print("Original List:", original_list)
print("Deep Copied List:", deep_copied_list)
깊은 복사의 경우 -> original_list의 내부 리스트 값을 변경해도 deep_copied_list의 값은 변하지 않는다.
enumerate()
my_list= ['hi', 'hello', 'ho']
for index, value in enumerate(my_list):
print(index, value)
enumerate()를 사용하면 인덱스와 값을 함께 출력할 수 있다!
if __name__ == "__main__":
왜 쓰는가 ?파일을 import 할 떄, 다른 스크립트에서 import한 파일의 코드 블록이 실행되지 않도록 하기 위함 !
소수란 2부터 n-1까지 어떤 소수로도 나누어지지 않는다.
for n in range(2, 1001):
for i in range(2,n):
counter +=1
if n % i ==0:
break
else:
print(n)
counter = 0
ptr = 0
prime = [None] * 500
prime[ptr] = 2
ptr +=1
for i in range(3, 1001, 2):
for j in range(1, ptr):
counter +=1 #나누는 횟수
if i % prime[j] ==0:
break
else:
prime[ptr] = i
ptr += 1
print(prime)
소수란 n의 제곱근 이하의 어떤 소수로도 나누어 떨어지지 않는다.
def is_prime_number(n): end = int(n**(1/2)) for i in range(2, end+1): if n % i ==0: return False return True
counter = 0 #곱셈과 나눗셈을 더한 횟수
ptr = 0
prime = [None] * 500
prime[ptr] =2
ptr +=1
prime[ptr] = 3
ptr += 1
for i in range(5, 1001, 2):
j = 1
while prime[j]*prime[j] <= i:
if i % prime[j]
counter = 0 #곱셈과 나눗셈의 횟수의 합
ptr = 0
prime = [None]*500
prime[ptr] = 2
ptr +=1
prime[ptr] = 3
ptr +=1
for i in range(5, 1001, 2):
j = 1
while prime[j]*prime[j] <= i:
counter +=1
if i % prime[j] == 0:
break
j +=1
else:
prime[ptr] = i
counter += 1
ptr +=1
print(prime)