본문 바로가기

Python/파이썬 - 기본을 갈고 닦자!

#10. List (1) - 리스트란, 리스트 사용

#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]



 
 
 
 
 
 
 
 
 
answer to problem