리스트의 개요

리스트란?

- 리스트는 항목들을 저장하는 컨테이너로서 그 안에 항목들이 순서를 가지고 저장됨
- 리스트의 크기는 항목의 개수가 증가(감소)하면 자동으로 증가(감소)함 -> 동적 할당
- 리스트는 어떤 타입의 항목이라도 저장할 수 있음
- 파이썬에서 리스트는 가장 많이 사용되는 데이터 구조

리스트 항목 접근하기

  • 인덱스(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] 리스트(2)

리스트 합병, 복제, 비교 리스트의 합병 및 복제 +연산자를 활용하여 2개의 리스트를 하나로 합병 가능 heroes1 = [ "아이언맨", "토르" ] heroes2 = [ "헐크", "스칼렛 위치" ] avengers = heroes1 + heroes2 # avenger

rebugs.tistory.com

 

'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