1. 요소 추가하기 : append(), insert()
names 리스트에 “코딩하자”라는 데이터를 마지막에 추가 하고 싶습니다. 이때 사용하는 append() 함수를 코드를 통해 알아봅시다.
names = ["이선호", "김대호", "손콩떡"] # 리스트 선언(초기화)
print(*names)
names.append("코딩하자")
print(*names)
우리는 마지막에 추가하는 것 이외에도 중간에 추가하고 싶을 때도 많이 있습니다.
n번째에 요소를 추가하는 insert() 함수를 코드를 통해 알아봅시다.
names = ["이선호", "김대호", "손콩떡"] # 리스트 선언(초기화)
print(*names)
names.insert(1, "코딩")
print(*names)
2. 요소 삭제하기 : pop(), remove(), del()
names 리스트에서 마지막 데이터를 삭제하는 pop() 함수를 코드를 통해 알아봅시다.
names = ["이선호", "김대호", "손콩떡"] # 리스트 선언(초기화)
print(*names)
print(names.pop())
print(*names)
pop() 함수는 자기가 제거한 마지막 요소를 반환해 줍니다. 따라서 print(names.pop())을 실행하면 마지막 요소였던 “손콩떡”이 출력됩니다.
names의 n번째 요소를 삭제하고 싶을 때도 있습니다. n번째 요소를 삭제할 때도 pop(n)을 사용합니다.
names = ["이선호", "김대호", "손콩떡"] # 리스트 선언(초기화)
print(*names)
print(names.pop(1))
print(*names)
del 리스트명[n] 를 통해서도 n 번째 요소를 삭제할 수 있습니다. pop() 과 달리 삭제한 값을 반환하지 않습니다.
names = ["이선호", "김대호", "손콩떡"] # 리스트 선언(초기화)
print(*names)
del names[1]
print(*names)
리스트 내의 특정 요소 값을 삭제하는 remove() 함수를 알아봅시다. 똑같은 요소가 여러개 있을 때는 첫번째 요소만 삭제됩니다.
names = ["이선호", "김대호", "손콩떡", "김대호"]
print(*names)
names.remove("김대호")
print(names)
3. 리스트 합치기 : extend(), +
두 리스트를 합치고 싶을때는 extend() 함수를 사용하거나 + 를 사용합니다.
names = ["이선호", "김대호", "손콩떡"]
species = ["human", "dog", "dog"]
na
print(names)
names = ["이선호", "김대호", "손콩떡"]
species = ["human", "dog", "dog"]
merged_list = names + species
print(merged_list)
4. 원하는 요소 찾기 : index()
리스트명.index(”요소”) 명령어는 “리스트 안에 “요소”의 인덱스를 알려줘 “ 라는 명령어 입니다.
names = ["이선호", "김대호", "손콩떡", "김대호"]
print(names.index("손콩떡"))
print(names.index("김대호"))
똑같은 요소가 여러개 있으면 첫 번째 요소의 인덱스를 반환합니다.
5. 리스트 복사하기
리스트를 복사하기 전에 변수의 값을 먼저 복사해 봅시다.
num에는 10이 저장되어 있습니다. num에 저장되어 있는값을 new_num에 복사해주세요.
< 정답 코드 >
num = 10
new_num = num
print(new_num)
이번에는 리스트를 복사해 봅시다. names 리스트에 “이선호”, “김대호”, “손콩떡”이 들어있습니다. 해당 요소들을 똑같이 가지는 new_names 리스트를 만들고 출력해주세요!!
names = ["이선호", "김대호", "손콩떡"]
# 코드를 작성해 주세요!!!
< 정답 코드 >
names = ["이선호", "김대호", "손콩떡"]
new_names = names
print(new_names)
이렇게 단순히 = 을 통해서도 복사가 될 수 있습니다.
하지만 이때 엄청난 문제가 발생합니다.
아래 코드를 실행시키면 어떤 결과가 나올지 예상해 봅시다.
names = ["이선호", "김대호", "손콩떡"]
new_names = names
names.append("코딩")
print(new_names)
실제로 코드를 실행시켜보면 건들지도 않은 new_names 리스트에 “코딩” 요소가 추가된 것을 확인할 수 있습니다.
= 으로 복사하는 경우 두 리스트는 일심동체가 됩니다.
둘 중 하나가 변화해도 다른 리스트에 영향을 미치죠.
이런 복사방식을 전문 용어로 얕은 복사 라고 합니다.
우리는 복사는하되 다른 쪽에 영향을 주지 않는 복사를 하기 원합니다.
이런 복사를 전문용어로 깊은 복사 라고합니다.
깊은 복사는 [:] 를 사용하여 복사하면 됩니다.
names = ["이선호", "김대호", "손콩떡"]
new_names = names[:]
names.append("코딩")
print(new_names)
print(names)
💡깊은 복사하는 그외 방법들
깊은 복사하는 방법은 [:] 외에도 더 있습니다.
1. copy 라이브러리 사용하기
2. list 함수 사용하기import copy original = [1, 2, 3, 4, 5] deep_copied = copy.deepcopy(original) print(deep_copied)
original = [1, 2, 3, 4, 5] deep_copied = list(original) print(deep_copied)3. copy() 함수 사용하기
original = [1, 2, 3, 4, 5] deep_copied = original.copy() print(deep_copied)
'파이썬 기초' 카테고리의 다른 글
| [ 파이썬 기초 ] 12. 딕셔너리 (해쉬) (0) | 2025.03.06 |
|---|---|
| [파이썬 기초] 10. 리스트 (0) | 2025.02.28 |
| [파이썬 기초] 9. 논리 연산자 (1) | 2025.02.27 |
| [파이썬 기초] 8. elif 와 else (0) | 2025.02.27 |
| [파이썬 기초] 7. if문 (0) | 2025.02.27 |