목록
- 목록 선언 및 요소 액세스
- index를 사용하여 요소에 접근하기
- list를 사용해 요소 수정하기
- 리스트 내에 특정값 유무 확인
Python에서 list는 여러 값을 저장할 수 있는 순서가 지정된 모음입니다. 목록은 대괄호([])를 사용하여 생성되며 각 요소는 쉼표(,)로 구분됩니다. 목록은 다양한 데이터 유형을 저장할 수 있으며 중첩 목록도 지원할 수 있습니다. 이 때 요소란 대괄호 안에 있는 자료를 뜻합니다. 예를 들면 다음과 같습니다.
[요소,요소,요소...]
목록 선언 및 요소 액세스
1. 목록 만들기
my_list = [1, 2, 3, 4, 5]
2. 목록의 요소에 액세스
목록의 요소에 액세스하려면 인덱싱을 사용할 수 있습니다. Python에서 인덱싱은 0부터 시작합니다. 따라서 첫 번째 요소에 액세스하려면 my_list[0]을 사용합니다. 두 번째 요소에는 my_list[1] 등을 사용합니다.
first_element = my_list[0]
second_element = my_list[1]
3. 네거티브 인덱싱
또한 음수 인덱싱을 사용하여 목록의 끝에서 요소에 액세스할 수 있습니다. 예를 들어 my_list[-1]은 마지막 요소를 제공하고 my_list[-2]는 마지막에서 두 번째 요소를 제공합니다.
last_element = my_list[-1]
second_to_last_element = my_list[-2]
4. 슬라이싱
슬라이싱을 사용하여 목록의 요소 범위에 액세스할 수 있습니다. 목록을 조각화하려면 시작 및 끝 인덱스를 콜론(:)으로 구분하여 지정해야 합니다.
# 인덱스 1부터 3까지의 요소를 가져옵니다 (끝 인덱스는 제외됨).
sub_list = my_list[1:4]
5. 중첩 목록 액세스
중첩 목록이 있는 경우 여러 대괄호를 사용하여 해당 요소에 액세스할 수 있습니다.
nested_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
first_row = nested_list[0]
second_element_in_first_row = nested_list[0][1]
index를 사용하여 요소에 접근하기
파이썬에서 리스트의 요소들은 인덱스를 사용하여 접근할 수 있습니다. 리스트 인덱스는 0부터 시작하며 첫 번째 요소는 인덱스 0, 두 번째 요소는 인덱스 1, 이런 식으로 이어집니다. 음수 인덱스를 사용하여 리스트의 끝에서부터 요소에 접근할 수도 있습니다.
리스트에서 요소에 접근하는 방법은 다음과 같습니다.
1. 단일 요소에 접근하기
my_list = [10, 20, 30, 40]
first_element = my_list[0] # 10
last_element = my_list[-1] # 40
2. 요소 범위에 접근하기 (슬라이싱)
my_list = [10, 20, 30, 40, 50]
first_three_elements = my_list[0:3] # [10, 20, 30]
last_two_elements = my_list[-2:] # [40, 50]
3. 요소 간격을 지정하여 접근하기 (간격을 가진 슬라이싱)
my_list = [10, 20, 30, 40, 50]
even_indices_elements = my_list[0::2] # [10, 30, 50]
4. 반복문을 사용하여 요소에 접근하기
my_list = [10, 20, 30, 40]
# 1. for 문 사용
for item in my_list:
print(item)
# 2. enumerate() 함수와 for 문을 사용하여 인덱스와 요소에 접근하기
for index, item in enumerate(my_list):
print(f"Element at index {index} is {item}")
# 3. while 문을 사용하여 요소에 접근하기
index = 0
while index < len(my_list):
print(my_list[index])
index += 1
list를 사용해 요소 수정하기
파이썬에서는 리스트에 요소를 추가하고 삭제하거나 정렬하는 등의 다양한 작업을 수행할 수 있는 리스트 메소드를 사용할 수 있습니다. 다음은 예시입니다.
1. 요소 추가하기
# 1. append(): 리스트의 끝에 요소를 추가합니다.
my_list = [10, 20, 30]
my_list.append(40)
print(my_list) # 출력: [10, 20, 30, 40]
# 2. insert(): 리스트의 특정 인덱스에 요소를 삽입합니다.
my_list = [10, 20, 30]
my_list.insert(1, 15)
print(my_list) # 출력: [10, 15, 20, 30, 40]
# 3. extend(): 다른 이터러블(예: 다른 리스트)에서 요소를 가져와 리스트 끝에 추가합니다.
my_list = [10, 20, 30]
another_list = [40, 50]
my_list.extend(another_list)
print(my_list) # 출력: [10, 15, 20, 30, 40, 45, 50]
2. 요소 삭제하기
# 1. remove(): 리스트에서 지정된 요소의 첫 번째 발생을 제거합니다.
my_list = [10, 20, 30, 20]
my_list.remove(20)
print(my_list) # 출력: [10, 30, 20]
# 2. pop(): 지정된 인덱스에 있는 요소를 제거하거나 인덱스가 제공되지 않으면 마지막 요소를 제거합니다.
my_list = [10, 20, 30, 40]
my_list.pop() # 마지막 요소 제거
my_list.pop(1) # 인덱스 1에 있는 요소 제거
print(my_list) # 출력: [10, 30]
# 3. clear(): 리스트에서 모든 요소를 제거합니다.
my_list = [10, 20, 30]
my_list.clear()
print(my_list) # 출력: []
2-1. DEL 키워드
파이썬에서 `del` 키워드는 리스트에서 항목을 제거하거나 전체 리스트를 삭제하는 데 사용됩니다. 이는 리스트 메소드가 아닌 일반적인 키워드이며 다른 데이터 구조에서도 사용할 수 있습니다. 리스트에서 `del` 키워드를 사용하는 방법은 다음과 같습니다.
# 1. 단일 항목 제거
# 특정 인덱스의 항목을 제거하려면 `del` 키워드 뒤에 리스트와 제거하려는 요소의 인덱스를 지정합니다.
my_list = [10, 20, 30, 40]
del my_list[1] # 인덱스 1(20)의 요소를 제거합니다.
print(my_list) # 출력: [10, 30, 40]
# 2. 항목 범위 제거
# 슬라이스를 지정하여 항목 범위를 제거할 수 있습니다.
my_list = [10, 20, 30, 40, 50, 60]
del my_list[1:4] # 인덱스 1(포함)에서 4(제외)까지의 요소를 제거합니다.
print(my_list) # 출력: [10, 50, 60]
# 3. 모든 항목 제거
# 콜론을 사용하여 전체 리스트를 지정하면 모든 항목을 제거할 수 있습니다. (이는 `clear()` 메소드와 다릅니다. `clear()` 메소드는 리스트를 유지하고 비웁니다.)
my_list = [10, 20, 30, 40]
del my_list[:]
print(my_list) # 출력: []
# 4. 전체 리스트 삭제
# `del` 키워드를 사용하여 전체 리스트 객체를 삭제할 수 있습니다. 이렇게 하면 리스트 객체가 더 이상 존재하지 않으며 액세스하려고하면 오류가 발생합니다.
my_list = [10, 20, 30, 40]
del my_list
print(my_list) # 이는 NameError를 발생시킵니다: name 'my_list' is not defined
`del` 키워드를 사용하면 리스트에서 항목이 제거되어 리스트의 크기가 변경됩니다. 이로 인해 실수로 인덱스 오류가 발생할 수 있으므로 주의해야 합니다.
3. 요소 정렬하기
# 1. sort()
# 리스트의 요소를 오름차순으로(기본값) 정렬하거나 `reverse=True`를 지정하면 내림차순으로 정렬합니다.
my_list = [30, 10, 40, 20]
my_list.sort() # 요소를 오름차순으로 정렬합니다.
print(my_list) # 출력: [10, 20, 30, 40]
my_list.sort(reverse=True) # 요소를 내림차순으로 정렬합니다.
print(my_list) # 출력: [40, 30, 20, 10]
# 2. reverse()
# 메소드는 리스트에 있는 요소들의 순서를 뒤집습니다. `reverse()` 메소드를 사용하여 리스트의 순서를 뒤집는 예시 코드입니다.
my_list = [10, 20, 30, 40]
my_list.reverse()
print(my_list) # 출력: [40, 30, 20, 10]
위 코드는 리스트 `my_list`에 있는 요소들의 순서를 뒤집고, 뒤집어진 리스트를 출력합니다. 따라서 출력 결과는 `[40, 30, 20, 10]`가 됩니다.
리스트 내에 특정값 유무 확인
파이썬에서 `in`과 `not in` 연산자는 리스트에 특정 값을 포함하는지 여부를 확인하는 데 사용됩니다. 이러한 연산자는 값을 찾으면 `True`를 반환하고 그렇지 않으면 `False`를 반환합니다.
다음은 `in`과 `not in` 연산자를 리스트와 함께 사용하는 방법입니다.
1. `in` 연산자 사용하기:
`in` 연산자는 주어진 값이 리스트에 있는지 여부를 확인합니다. 값이 발견되면 `True`를 반환하고 그렇지 않으면 `False`를 반환합니다.
my_list = [1, 2, 3, 4, 5]
# 리스트에 값이 있는지 확인
if 3 in my_list:
print("3 is in the list") # Output: 3 is in the list
if 6 in my_list:
print("6 is in the list")
else:
print("6 is not in the list") # Output: 6 is not in the list
2. `not in` 연산자 사용하기:
`not in` 연산자는 주어진 값이 리스트에 없는지 여부를 확인합니다. 값이 발견되지 않으면 `True`를 반환하고 그렇지 않으면 `False`를 반환합니다.
my_list = [1, 2, 3, 4, 5]
# 리스트에 값이 없는지 확인
if 3 not in my_list:
print("3 is not in the list")
else:
print("3 is in the list") # Output: 3 is in the list
if 6 not in my_list:
print("6 is not in the list") # Output: 6 is not in the list
else:
print("6 is in the list")
`in`과 `not in` 연산자는 전체 리스트를 순환하지 않아도 특정 값의 존재 여부를 쉽게 확인할 수 있어 리스트와 다른 이터러블 데이터 구조를 다룰 때 매우 유용합니다.
'Python > Python 기본' 카테고리의 다른 글
[Python] 파이썬 딕셔너리(Dictionary)란? (0) | 2023.04.22 |
---|---|
[Python] 파이썬 for 문과 응용 (0) | 2023.04.22 |
[Python] IF 함수를 논리적으로 False로 만들기 (0) | 2023.04.21 |
[Python] if 함수와 응용 (0) | 2023.04.21 |
[Python] 파이썬 부울(Boolean)이란? (0) | 2023.04.21 |