수정이 불가능한 객체 (immutable) : 튜플, 문자열
수정이 가능한 객체 (mutable) : 리스트
r = [1,2]
print(id(r))
r += [3, 4]
print(r)
print(id(r))
2432506958464
[1, 2, 3, 4]
2432506958464 //주소값이 같다
t = (1,2)
print(id(t))
t += (3,4)
print(t)
print(id(t))
2432505701312
(1, 2, 3, 4)
2432505844160 //주소값이 바뀜
t1 = "홍"
t2 = "길"
t3 = "동"
t = t1 + t2 + t3
print(t)
t1 = t1 + t2 + t3 #새로운 값을 만들어서 저장한다 원본을 건드리지 않는다
print(t1)
홍길동
홍길동
list
def add_last(m,n):
m += n
r = [1,2]
add_last(r, [3,4])
print(r)
[1, 2, 3, 4]
tuple
def add_last(m,n):
m += n
t = (1,3)
add_last(t, (5,7))
print(t)
(1,3)
함수 실행이 끝나고 나면
t = (1,3)
m = (1,3,5,7) 이 되기 때문에 t는 (1,3) 이 저장되어 있다
immutable t의 값은 추가 되지 않음
tuple의 값을 바꾸려면
def add_last1(m,n):
m += n
t1 = (1,3)
add_last1(t1,(5,7))
print(t1)
def add_last2(m,n):
m += n
return m
t2 = (1,3)
t2 = add_last2(t2, (5,7))
print(t2)
(1,3)
(1,3,5,7)
a = [1,2,3,4,5,6,7,8,9,10]
print(a[0], a[-1])
1 10
오름차순 sort()
a = []
a.append(1)
a.append(10)
a.append(25)
a.append(19)
a.append(40)
a.append(7)
print(a)
a.sort()
print(a)
[1, 10, 25, 19, 40, 7]
[1, 7, 10, 19, 25, 40]
l = [3,1,5,4,7,6]
def min_max(a):
a.sort()
print("최소값", a[0], "최대값", a[-1], sep=' ')
min_max(l)
print(l)
최소값 1 최대값 7
[1, 3, 4, 5, 6, 7] // 하지만 원본의 순서가 바뀌어 버렸다
위의 문제에서 원본을 변경시키지 않아야 한다
# %% 위의 문제에서 원본을 변경시키지 않아야 한다
a = [3,1,5,4,7,6]
c = (3,1,5,4,7,6)
def min_max(a):
#a = [3,1,5,4,7,6]
a=list(a)
a.sort()
print("최소값", a[0], "최대값", a[-1], sep=' ')
min_max(a)
min_max(c)
print(a)
print(c)
최소값 1 최대값 7
[3, 1, 5, 4, 7, 6]
(3, 1, 5, 4, 7, 6)
728x90
'Dev. > Python' 카테고리의 다른 글
python :: list comprehension 리스트 컴프리헨션 (0) | 2022.08.02 |
---|---|
python :: 얕은 복사(shallow copy) (0) | 2022.08.02 |
Python :: 예외처리 / 사용자 예외 처리, 파일 입출력 (0) | 2022.07.20 |
Python :: 생성자 (초기화 메소드) (0) | 2022.07.19 |
Python :: 클래스와 객체 (0) | 2022.07.19 |
댓글