sein-choi 님의 블로그

[Python : basic] 리스트 본문

python/기본

[Python : basic] 리스트

sein-choi 2024. 11. 18. 17:45

리스트

여러개의 값을 하나의 변수에 저장할 수 있는 순서가 있는 자료형이다

 

리스트의 특징

1. 리스트 내의 각 요소는 순서를 가지고 있다

2. 다양한 데이터 타입을 저장할 수 있다

3. 리스트 생성 후에 요소를 추가, 제거, 변경 할 수 있다(가변성)

 

리스트 만들기 : [요소1, 요소2] or list(요소1, 요소2)

list = [1,2,3,'사과']
list = list(1,2,3,'사과')

print(list) # 1,2,3,'사과'

 

✅리스트 인덱싱

특정 요소에 접근하거나 조작하기 위해 사용한다

리스트의 각 요소는 0부터 시작하는 인덱스를 가지고 있다

인덱스를 사용하여 요소를 식별하고 특정 요소를 가져오거나 변경할 수 있다

 

리스트 인덱싱 : [인덱스]

문자열 인덱싱과 마찬가지로 음수 인덱스를 사용하면 리스트의 끝에서부터 요소를 선택한다

num = ['zero', 'one', 'two', 'three']

print(num[0]) # zero
print(num[-1]) # three

 

인덱스를 이용하여 요소 변경

num = ['zero', 'one', 'two', 'three']
num[0] = 0

print(num) #  [0, 'one', 'two', 'three']

 

리스트 슬라이싱

리스트의 일부분을 추출하여 새로운 리스트를 생성한다

원본 리스트는 변경되지 않는다

 

리스트 슬라이싱 : [시작 인덱스 : 끝 인덱스 : 스탭(선택사항)]

시작 인덱스 : 슬라이스의 시작 위치를 설정한다

단, 시작 인덱스를 포함

끝 인덱스 : 슬라이스의 끝 위치를 설정한다

단, 끝 인덱스를 포함하지않음

스탭 : 요소를 선택하는 간격을 설정한다

fruit = ['apple', 'orange', 'banana', 'melon']

print(fruit[0:2]) # ['apple', 'orange']

 

시작 인덱스 생략 : [ : 끝 인덱스]

리스트의 처음부터 끝 인덱스 전까지 추출한다

끝 인덱스 생략: [시작 인덱스 : ]

시작 인덱스부터  리스트의 마지막까지 추출한다

시작 인덱스와 끝 인덱스 모두 생략 : [ : ]

리스트를 복사한다

fruit = ['apple', 'orange', 'banana', 'melon']

print(fruit[:2]) # ['apple', 'orange']
print(fruit[2:]) # ['banana', 'melon']
print(fruit[:]) # ['apple', 'orange', 'banana', 'melon']

 

🔶리스트 스탭

fruit = ['apple', 'orange', 'banana', 'melon']

print(fruit[0:4:2]) # ['apple', 'banana']
print(fruit[::2]) # ['apple', 'banana']

 

🔶리스트 음수 슬라이싱

문자열과 마찬가지로 문자열의 끝에서부터 인덱스를 할당하여 추출한다

fruit = ['apple', 'orange', 'banana', 'melon']

print(fruit[-3:-1]) # ['orange', 'banana']

 

🔶리스트 음수 스탭

리스트를 역순으로 추출한다

fruit = ['apple', 'orange', 'banana', 'melon']

print(fruit[::-1]) # ['melon', 'banana', 'orange', 'apple']

 

✅리스트 검색 : count, index

 

🔶리스트에서 검색 값의 출현 횟수 : .count(검색 값)

fruit = ['apple', 'orange', 'banana', 'melon', 'apple']

print(fruit.count('apple')) # 2

 

🔶리스트에서 검색 값의 첫번째 인덱스 찾기 : .index(검색 값)

리스트 전체 범위에서 검색 값의 인덱스 찾기

리스트 범위 설정 : .index('검색 값', 시작 인덱스, 끝 인덱스)

리스트의 시작 인덱스에서 끝 인덱스 사이에서 검색 값의 인덱스 찾기

fruit = ['apple', 'orange', 'banana', 'melon', 'apple']

print(fruit.index('apple')) # 0
print(fruit.index('apple',1,5)) # 4
print(fruit.index('apple',1)) # 4

 

✅리스트 삽입 : append, extend, insert

 

🔶리스트의 끝에 값을 추가 : .append(추가할 값)

num = [1,2,3,4]
num.append(5)

print(num) # [1,2,3,4,5]

 

🔶리스트의 끝에 다른 리스트의 전체 값을 추가 : .extend(추가할 리스트)

num1 = [1,2,3,4]
num2 = [5,6,7,8,9]
num1.extend(num2)

print(num1) # [1,2,3,4,5,6,7,8]

 

🔶지정된 위치에 값을 추가 : .insert(인덱스, 추가할 값)

num = [1,2,3,5]
num.insert(3,4)

print(num) # [1,2,3,4,5]

 

 

✅리스트 삭제 : remove, pop, clear

 

🔶리스트에서 첫번째로 등장하는 삭제할 값을 제거 : .remove(삭제할 값)  

num = [0,1,2,3,4,5,0]
num.remove(0)

print(num) # [1,2,3,4,5,0]

 

🔶리스트에서 인덱스를 활용하여 값 삭제 : .pop(삭제할 값의 인덱스)

그 후 삭제한 값을 변수에 저장 : 변수 = 리스트.pop(삭제할 값의 인덱스)

단, 인덱스를 생략하면 리스트의 마지막 요소를 삭제하고 반환한다

num = [1,2,3,4,5]
removed_num = num.pop(0)

print(num) # [2,3,4,5]
print(removed_num) # 1

 

🔶리스트의 모든 요소를 삭제 : .clear( )

num = [1,2,3,4,5]
num.clear()

print(num) # []

 

리스트 정렬

🔶리스트 요소 정렬 : .sort( ) - 오름차순 / .sort(reverse = True) - 내림차순

# 오름차순
num1 = [2,4,3,5,1]
num1.sort()

print(num1) # [1,2,3,4,5]

# 내림차순
num2 = [2,4,3,5,1]
num2.sort(reverse = True)

print(num2) # [5,4,3,2,1]

 

🔶리스트 요소의 순저 뒤집기 : .reverse( )

num = [2,4,3,5,1]
num.reverse()

print(num) # [1,5,3,4,2]

 

✅리스트 값 분석

 

🔶리스트 최댓값 : max( )

num = [1,2,3,4,5]

print(max(num)) # 5

 

🔶리스트 최솟값 : min( )

num = [1,2,3,4,5]

print(min(num)) # 1

 

🔶리스트의 모든 요소의 합 : sum( )

num = [1,2,3,4,5]

print(sum(num)) # 15

 

🔶리스트 요소 갯수 : len()

num = [1,2,3,4,5]

print(len(num)) # 5

 

출저 : 스파르타코딩, 데이콘