리스트의 개요
리스트란?
- 리스트는 항목들을 저장하는 컨테이너로서 그 안에 항목들이 순서를 가지고 저장됨
- 리스트의 크기는 항목의 개수가 증가(감소)하면 자동으로 증가(감소)함 -> 동적 할당
- 리스트는 어떤 타입의 항목이라도 저장할 수 있음
- 파이썬에서 리스트는 가장 많이 사용되는 데이터 구조
리스트 항목 접근하기
- 인덱스(index) : 리스트에서의 항목의 위치(번호)
- 0부터 시작(메모리 주소 계산의 편의성)
리스트의 항목 변경
list1 = ["가", "나", "다", "라", "마"]
list1[2] = "안녕" #2번째 인덱스의 값 변경
print(list1)
출력 결과는 ['가', '나', '안녕', '라', '마']이다.
음수 인덱스
마지막 데이터에 대한 빠른 접근 허용
리스트의 마지막 데이터에 접근하는 2가지 방법
- list1[-1]
- list1[len(list1)-1]
리스트 접근
리스트 안에 저장된 요소들을 모두 접근하기 위해서는?
- 첫 번째 방법 : 인덱스 값을 사용하여 접근
list1 =[28,31,33,35,27,26,25]
for i in range(len(list1)):
print(list1[i], end=', ') #end=',’는 출력 후 엔터 대신 ,를 붙임
출력 결과는 28, 31, 33, 35, 27, 26, 25,
- 두 번째 방법 : 인덱스 값이 필요 없다면 for-each 루프 사용
list1 =[28,31,33,35,27,26,25]
for element in list1:
print(element, end=', ')
출력 결과는 28, 31, 33, 35, 27, 26, 25,
zip() 함수
zip() 함수는 2개의 리스트를 받아서 항목 2개를 묶어서 제공함
questions =['name','quest','color']
answers =['Kim','파이썬','blue']
for q, a in zip(questions, answers):
print(f"What is your {q}? It is {a}")
출력 결과
What is your name? It is Kim
What is your quest? It is 파이썬
What is your color? It is blue
리스트의 연산
append()
새로운 요소를 리스트의 맨 끝에 추가
heroes = [ ]
heroes.append("아이언맨")
heroes.append("토르")
print(heroes)
실행 결과 : ['아이언맨', '토르']
insert()
지정된 위치에 요소를 추가
index()
특정 항목이 리스트에 어느 위치에 있는지 확인
heroes = [ “아이언맨” , “토르” , “헐크”, “스칼렛 위치”, “헐크” ]
n = heroes.index(“헐크”) #n은 2가 됨
탐색 시작 위치 지정 가능
heroes = [ "아이언맨", "토르", "헐크", "스칼렛 위치", "헐크" ]
n = heroes.index("헐크", 3) #n은 4가 됨
탐색하고자 하는 항목이 리스트에 없으면 오류가 발생한다는 것을 주의해야 함
in 연산자
리스트 안에 특정 항목이 있는지 알기 위함
l_list = [0,1,2,3,4,5,6,7,8,9]
if 5 in l_list: #5가 리스트에 있다면
print("5는 리스트에 있습니다")
else:
print("5는 리스트에 없습니다")
not in 연산자
리스트 안에 특정 항목이 없는지 알기 위함
l_list = [0,1,2,3,4,5,6,7,8,9]
if 10 not in l_list: #리스트에 10이 없다면
l_list.append(10) #리스트에 10 추가
else:
print("10는 리스트에 이미 있습니다.")
pop(), remove()
pop(i) : 리스트에서 i번째 항목을 삭제하여 반환
(i가 없으면 마지막 데이터 삭제 후 반환)
remove() : 리스트에서 지정된 값을 삭제, 값을 반환하진 않음
heroes = [ "아이언맨", "토르", "헐크" ]
heroes.remove("토르")
삭제하고자 하는 항목이 없다면 오류(예외)가 발생
리스트 항목의 최댓값과 최솟값
max()와 min()은 내장 함수로서 거의 모든 객체에 사용 가능
values = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]
min(values) # 1 반환
max(values) # 10 반환
리스트의 정렬
메소드 사용
a = [ 3, 2, 1, 5, 4 ]
a.sort() #[1,2,3,4,5] #오름차순으로 정렬
heroes =['아이언맨','헐크','토르']
heroes.sort()
# ['아이언맨', '토르', '헐크']
a = [ 3, 2, 1, 5, 4 ]
a.sort(reverse = True) #[5,4,3,2,1] #내림차순으로 정렬
내장 함수 사용
numbers =[10,3,7,1,9,4,2,8,5,6]
ascending_numbers = sorted(numbers)
print(ascending_numbers)
리스트 메소드 정리
메소드 | 설명 |
append() | 요소를 리스트의 끝에 추가 |
extend() | 리스트의 모든 요소를 다른 리스트에 추가 |
insert() | 지정된 위치에 항목을 삽입 |
remove() | 리스트에서 항목을 삭제 |
pop() | 지정된 위치에서 요소를 삭제하여 반환 |
clear() | 리스트로부터 모든 항목을 삭제 |
index() | 일치되는 항목의 인덱스를 반환 |
count() | 인수로 전달된 항목의 개수를 반환 |
sort() | 오름차순으로 리스트 안의 항목을 정렬 |
reverse() | 리스트 안의 항목의 순서를 반대로 함 |
copy() | 리스트의 복사본을 반환 |
round() | 주어진 자리수대로 반올림한 값을 반환 |
reduce() | 특정한 함수를 리스트 안의 모든 요소에 적용하여 결과값을 저장하고 최종 합계값만을 반환 |
sum() | 리스트 안의 숫자들을 모두 더함 |
ord() | 유니코드 문자의 코드값을 반환 |
cmp() | 첫 번째 리스트가 두 번째 보다 크면 1을 반환 |
max() | 리스트의 최대값을 반환 |
min() | 리스트의 최소값을 반환 |
all() | 리스트의 모든 요소가 참이면 참을 반환 |
any() | 리스트 안의 한 요소라도 참이면 참을 반환 |
len() | 리스트의 길이를 반환 |
enumerate( ) | 리스트의 요소들을 하나씩 반환하는 객체를 생성 |
accumulate( ) | 특정한 함수를 리스트의 요소에 적용한 결과를 저장하는 리스 트를 반환 |
filter( ) | 리스트의 각 요소가 참인지 아닌지를 검사 |
map( ) | 특정한 함수를 리스트의 각 요소에 적용하고 결과를 담은 리 스트를 반환 |
리스트에 대해 더 알고 싶다면
2022.12.06 - [Language/Python] - [Python] 리스트(2)
'Python Category > Python' 카테고리의 다른 글
[Python] 문자열 (1) | 2022.12.08 |
---|---|
[Python] 딕셔너리 (0) | 2022.12.07 |
[Python] 세트 (0) | 2022.12.07 |
[Python] 튜플 (0) | 2022.12.06 |
[Python] 리스트(2) (0) | 2022.12.06 |