Home [PCCP]3일차
Post
Cancel

[PCCP]3일차

구구단 만드는 법

1
2
3
4
5
6
7
8
9
from pprint import pprint  
gugudan = []  
for i in range(2, 10):  
    temp = []  
    for j in range(1, 10):  
        temp.append(j*i)  
    gugudan.append(temp)  
  
pprint(gugudan)  

[[2, 4, 6, 8, 10, 12, 14, 16, 18], [3, 6, 9, 12, 15, 18, 21, 24, 27], [4, 8, 12, 16, 20, 24, 28, 32, 36], [5, 10, 15, 20, 25, 30, 35, 40, 45], [6, 12, 18, 24, 30, 36, 42, 48, 54], [7, 14, 21, 28, 35, 42, 49, 56, 63], [8, 16, 24, 32, 40, 48, 56, 64, 72], [9, 18, 27, 36, 45, 54, 63, 72, 81]]

구구단(list comprehension)

1
2
3
gugudan2 = [[i*j for i in range(1, 10)] for j in range(2, 10)]  
  
pprint(gugudan2)

[[2, 4, 6, 8, 10, 12, 14, 16, 18], [3, 6, 9, 12, 15, 18, 21, 24, 27], [4, 8, 12, 16, 20, 24, 28, 32, 36], [5, 10, 15, 20, 25, 30, 35, 40, 45], [6, 12, 18, 24, 30, 36, 42, 48, 54], [7, 14, 21, 28, 35, 42, 49, 56, 63], [8, 16, 24, 32, 40, 48, 56, 64, 72], [9, 18, 27, 36, 45, 54, 63, 72, 81]]

얕은 복사, 깊은 복사

  1. 얕은 복사 (Shallow Copy):
    • 얕은 복사는 객체의 최상위 수준만 복사한다 → 내부의 객체는 참조로 연결
    • 따라서, 얕은 복사된 객체에서 내부 객체를 수정하면 원래 객체의 내부 객체도 변경된다
    • Python에서 copy 모듈의 copy() 함수를 사용하여 얕은 복사를 수행할 수 있다
    • 또는 list형태를 복사 할 경우 copied_list = original_list[:]도 자주 사용한다
  2. 깊은 복사 (Deep Copy):
    • 깊은 복사는 객체와 그 객체에 포함된 모든 내부 객체를 재귀적으로 복사한다
    • 따라서, 깊은 복사된 객체에서 어떤 변경을 해도 원래 객체에는 영향을 주지 않는다
    • Python에서 copy 모듈의 deepcopy() 함수를 사용하여 깊은 복사를 수행할 수 있다
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import copy

# 원래 리스트
original_list = [[1, 2, 3], [4, 5, 6]]

# 얕은 복사
shallow_copied_list = copy.copy(original_list)

# 깊은 복사
deep_copied_list = copy.deepcopy(original_list)

# 원래 리스트의 내부 리스트 수정
original_list[0][0] = 'X'

original_list, shallow_copied_list, deep_copied_list

  • 리스트를 반복할때는 얕은 복사([:])를 사용
    • → 단, 2차원 리스트의 경우에는 깊은 복사(from copy import deepcopy)를 사용
This post is licensed under CC BY 4.0 by the author.

[SeSAC]Roboflow

[lvl3]합승 택시 요금