goodthings4me.tistory.com
# 리스트에 대해 sort() 함수 실행 시 원본 변경 여부
def list_sort(r):
r.sort() # 원본 리스트를 참조변수 r에 대입한 것과 동일
print('r :', r)
print(id(lst1), id(r), id(lst1)==id(r), sep=' : ') # 주소값 동일
lst1 = [4, 2, 6, 12, 9]
list_sort(lst1)
print('lst1 : ', lst1) # 원본 리스트값 변경됨
print('\n# 원본 리스트값 변경 안되게 하려면,')
def list_sort2(r):
r = list(r) # 참조변수 r에 새 리스트 생성 후 다시 할당, r.copy() 또는 r = r[:] 도 가능
r.sort()
print('r :', r) # 새로운 리스트 sort() 결과
print(id(lst2), id(r), id(lst2)==id(r), sep=' : ') # False
lst2 = [5, 3, 7, 13, 10]
list_sort2(lst2)
print('lst2 : ', lst2) # 원본 리스트값 변경 안됨
print('\n# 리스트의 값 수정 후 동일 여부,')
def list_modify(r):
r[-1] += 1 # 참조변수 r에 원본 리스트 대입 후, 마지막 값 1 증가
print('r : ', r)
print('lst3 : ', lst3) # 원본 리스트도 변경됨 [6, 4, 8, 14, 12]
print(id(lst3), id(r), id(lst3)==id(r), sep=' : ') # True
r = list(r) # 참조변수 r에 새 리스트 생성 후 다시 할당 [6, 4, 8, 14, 12]
r[-1] += 1
print('r : ', r) # 새 리스트 변경됨[6, 4, 8, 14, 13]
print('lst3 : ', lst3) # 원본 리스트값 변경 안됨 [6, 4, 8, 14, 12]
print(id(lst3), id(r), id(lst3)==id(r), sep=' : ') # False
lst3 = [6, 4, 8, 14, 11]
list_modify(lst3)
# cf)
print('\n\n==== 튜플에 대해 최소/최소값 추출은? =====')
# 튜플은 sort() 함수 사용 못함. 리스트로 변경 후 최소/최대값 추출
def tuple_min_max2(r):
r = list(r)
r.sort()
print('r :', r)
tup2 = (4, 2, 6, 12, 9)
tuple_min_max2(tup2)
print('tup2 : ', tup2)
[실행 결과]
r : [2, 4, 6, 9, 12]
1519651951104 : 1519651951104 : True
lst1 : [2, 4, 6, 9, 12]
# 원본 리스트값 변경 안되게 하려면,
r : [3, 5, 7, 10, 13]
1519651986944 : 1519651637632 : False
lst2 : [5, 3, 7, 13, 10]
# 리스트의 값 수정 후 동일 여부,
r : [6, 4, 8, 14, 12]
lst3 : [6, 4, 8, 14, 12]
1519651637632 : 1519651637632 : True
r : [6, 4, 8, 14, 13]
lst3 : [6, 4, 8, 14, 12]
1519651637632 : 1519651923200 : False
==== 튜플에 대해 최소/최소값 추출은? =====
r : [2, 4, 6, 9, 12]
tup2 : (4, 2, 6, 12, 9)
[참고자료] 윤성우의 열혈 파이썬 중급편
'코딩 연습 > 코딩배우기' 카테고리의 다른 글
[python] n부터 시작하여 m까지 연속하는 숫자의 합은? (0) | 2020.08.20 |
---|---|
[python] 클래스(class)와 객체(object) 이해하기 (0) | 2020.08.19 |
[python] 객체처럼 다뤄지는 함수, 그리고 이름 없는 함수, 람다(lambda) (0) | 2020.08.19 |
[Python] 파이썬 list, tuple, dict, set의 스페셜 메서드 정리 (1) | 2020.08.12 |
[python] 변경 가능한 객체(mutable), 변경 불가능한 객체(immutable) - #1 (0) | 2020.08.12 |
댓글