#10. List (1)
10. List(리스트)(1) - 리스트란, 리스트 사용
## 1. list 란? - 순서가 있는 수정가능한 객체의 집합입니다. - 수정, 삭제, 추가가 가능합니다. - list 는 `[]` 대괄호로 작성되어지며, 내부 원소는 `,`…
wikidocs.net
1. list 란?
- 순서가 있는 수정가능한 객체의 집합입니다.
- 수정, 삭제, 추가가 가능합니다.
- list 는 [] 대괄호로 작성되어지며, 내부 원소는 ,로 구분됩니다.
- REPL에서 확인하겠습니다. 일반 list 입니다.
>>> [1, 3, 5, 7]
[1, 3, 5, 7]
>>> a = [1, 3, 5, 7]
>>> type(a)
<class 'list'>
2. list 사용
- list는 0부터 시작하는 인덱스로 접근가능합니다.
>>> a = [1, 3 , 5, 7]
>>> a[0]
1
>>> a[3]
7
- index 범위를 벗어나면 에러가 발생합니다.
>>> a = [1, 3 , 5, 7]
>>> a[4]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: list index out of range
- 여러가지 타입이 함께 list에 포함될 수 있습니다.
>>> ['a', 354, True]
['a', 354, True]
- 처음에 리스트를 선언하는 방법입니다.
- list클래스로 객체를 만들어도 되고, 그냥 대괄호로 작성해도 됩니다.
>>> b=list()
>>> b
[]
>>> c=[]
>>> c
[]
- 리스트에 원소를 추가합니다.
>>> b =[]
>>> b.append(5)
>>> b.append(1.4)
>>> b
[5, 1.4]
- 리스트를 합치는 것은 + 연산자로 간편하게 가능합니다.
>>> [1, 3, 5] + [ 2, 7]
[1, 3, 5, 2, 7]
- 문자열을 리스트로 변형해봅니다.
>>> list("가나다")
['가', '나', '다']
- 리스트는 마지막 원소뒤에 콤마를 남겨도 에러가 나지 않습니다. 보통 편의를 위해 마지막에 콤마를 찍기를 권장하기도 합니다.
Copy>>> ['가',
... '나',
... '다',
... '라',
... ]
['가', '나', '다', '라']
개념 문제
1. 리스트와 관련된 설명 중 틀린 것을 고르세요.
a) 리스트는 순서가 있는 수정 가능한 객체의 집합이다.
b) 리스트는 중복된 값을 가질 수 없다.
c) 리스트는 대괄호 []로 작성되고 내부 원소는 쉼표 ,로 구분된다.
d) 리스트는 다양한 타입의 요소들을 가질 수 있다.
2. 다음 리스트와 관련된 설명 중 올바른 것을 고르세요.
a) 리스트의 인덱스는 1부터 시작한다.
b) 리스트의 인덱스를 벗어나 접근하면 에러가 발생한다.
c) 리스트는 항상 숫자만 포함할 수 있다.
d) 리스트는 선언 시 반드시 원소를 포함해야 한다.
3. 리스트를 선언하고 사용할 때, 아래 코드의 결과로 올바른 것을 고르세요.
a = [1, 2, 3]
b = []
b.append(4)
b.append(a)
b
a) [4, 1, 2, 3]
b) [4, [1, 2, 3]]
c) [4, 1, 2, 3, 4]
d) [1, 2, 3, 4]
4. 리스트와 관련된 설명 중 틀린 것을 고르세요.
a) 리스트의 요소는 변경할 수 있다.
b) 리스트는 동일한 요소를 여러 번 가질 수 있다.
c) 리스트는 정수형 인덱스로 접근할 수 있다.
d) 리스트는 요소를 삭제할 수 없다.
5. 다음 리스트와 관련된 설명 중 올바른 것을 고르세요.
a) 리스트는 요소의 개수가 고정되어 있다.
b) 리스트는 특정 요소의 인덱스를 반환하는 index 메서드를 제공한다.
c) 리스트는 문자열만 포함할 수 있다.
d) 리스트는 요소를 추가할 수 없고, 미리 정의된 요소만 포함해야 한다.
6. 리스트를 선언하고 사용할 때, 아래 코드의 결과로 올바른 것을 고르세요.
a = [1, 2, 3]
a.insert(1, 4)
a
a) [1, 4, 2, 3]
b) [1, 2, 3, 4]
c) [4, 1, 2, 3]
d) [1, 4, 3, 2]
1. 정답: b) 리스트는 중복된 값을 가질 수 없다.
리스트는 중복된 값을 가질 수 있습니다.
2. 정답: b) 리스트의 인덱스를 벗어나 접근하면 에러가 발생한다.
인덱스를 벗어나 접근하면 IndexError가 발생합니다.
3. 정답: b) [4, [1, 2, 3]]
리스트 b에 숫자 4와 리스트 a를 순서대로 추가한 결과입니다.
4. 정답: d) 리스트는 요소를 삭제할 수 없다.
리스트는 요소를 삭제할 수 있습니다.
5. 정답: b) 리스트는 특정 요소의 인덱스를 반환하는 index 메서드를 제공한다.
index 메서드를 사용하여 특정 요소의 인덱스를 찾을 수 있습니다.
# 리스트를 선언합니다.
my_list = ['apple', 'banana', 'cherry', 'date', 'elderberry']
# 'cherry' 요소의 인덱스를 찾습니다.
index_of_cherry = my_list.index('cherry')
# 결과를 출력합니다.
print(f"The index of 'cherry' is: {index_of_cherry}")
Output:
The index of 'cherry' is: 2
6. 정답: a) [1, 4, 2, 3]
insert 메서드는 지정한 인덱스에 요소를 삽입합니다.
코딩 문제
1. 리스트 인덱스 활용
리스트 [10, 20, 30, 40, 50]를 선언하고, 인덱스를 사용하여 첫 번째 요소와 세 번째 요소의 합을 출력하는 코드를 작성하세요.
my_list = [10, 20, 30, 40, 50]
첫 번째 요소와 세 번째 요소의 합을 계산하여 출력하세요.
my_list = [10, 20, 30, 40, 50]
result = my_list[0] + my_list[2]
print(result) # 출력: 40
2. 리스트 요소 추가
빈 리스트 numbers를 선언하고, 사용자로부터 5개의 숫자를 입력받아 리스트에 추가한 후, 리스트를 출력하는 코드를 작성하세요.
numbers = []
사용자로부터 5개의 숫자를 입력받아 리스트에 추가하세요.
입력 예시: 10, 20, 30, 40, 50
numbers = []
for _ in range(5):
num = int(input("숫자를 입력하세요: "))
numbers.append(num)
print(numbers)
numbers = []
a = map(int, input().split())
for i in a:
numbers.append(i)
print(numbers)
3. 리스트 병합
두 개의 리스트 [1, 2, 3]과 [4, 5, 6]을 선언하고, 이를 병합하여 새로운 리스트를 만드는 코드를 작성하세요. 병합된 리스트를 출력하세요.
list1 = [1, 2, 3]
list2 = [4, 5, 6]
두 리스트를 병합하여 새로운 리스트를 생성하고 출력하세요.
list1 = [1, 2, 3]
list2 = [4, 5, 6]
merged_list = list1 + list2
print(merged_list) # 출력: [1, 2, 3, 4, 5, 6]
4. 리스트 요소 삭제
리스트 [10, 20, 30, 40, 50]에서 세 번째 요소를 삭제하고, 삭제된 후의 리스트를 출력하는 코드를 작성하세요.
my_list = [10, 20, 30, 40, 50]
세 번째 요소를 삭제하고 리스트를 출력하세요.
my_list = [10, 20, 30, 40, 50]
del my_list[2]
print(my_list) # 출력: [10, 20, 40, 50]
5. 리스트 정렬
리스트 [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]를 오름차순 및 내림차순 으로 정렬한 후, 정렬된 리스트를 출력하는 코드를 작성하세요.
my_list = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
리스트를 오름차순으로 정렬하고 출력하세요.
리스트를 내림차순으로 정렬하고 출력하세요.
my_list = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
my_list.sort()
print(my_list) # 출력: [1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
my_list.reverse() #리스트를 뒤집음
print(my_list) # 출력: [9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1]
my_list.sort(reverse=True)
print(my_list) # 출력: [9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1]
6. 리스트 복사
리스트 [1, 2, 3]를 복사하여 새로운 리스트를 만들고, 원본 리스트와 복사된 리스트를 각각 출력하는 코드를 작성하세요. 복사된 리스트에 요소를 추가한 후 두 리스트를 출력하여 원본 리스트에 영향이 없는지 확인하세요.
original_list = [1, 2, 3]
리스트를 복사하고 새로운 리스트를 만든 후, 각각의 리스트를 출력하세요.
복사된 리스트에 요소를 추가하고, 두 리스트를 다시 출력하세요.
original_list = [1, 2, 3]
copied_list = original_list.copy()
print("Original List:", original_list) # 출력: Original List: [1, 2, 3]
print("Copied List:", copied_list) # 출력: Copied List: [1, 2, 3]
copied_list.append(4)
print("Original List after modification:", original_list) # 출력: Original List after modification: [1, 2, 3]
print("Copied List after modification:", copied_list) # 출력: Copied List after modification: [1, 2, 3, 4]
'Python > 파이썬 - 기본을 갈고 닦자!' 카테고리의 다른 글
#15. List(리스트)(5) - 리스트 정렬 (0) | 2024.05.27 |
---|---|
#14. List(리스트)(4) - 리스트 원소 추가, 삭제 (0) | 2024.05.26 |
#13. List(리스트)(3) - 리스트 반복, 리스트 관련 메소드 (0) | 2024.05.26 |
#12. 얕은 복사(shallow copy)와 깊은 복사(deep copy) (0) | 2024.05.21 |
#11. List(리스트)(2) - 리스트 인덱싱, 리스트 슬라이싱 (0) | 2024.05.21 |