kingrangE
article thumbnail
Published 2024. 3. 6. 10:13
List란? Python

List?

하나의 자료형(list)로 여러 개의 값을 담을 수 있는 순서가 있는 자료형입니다.

예를 들어, 1~ 10까지 숫자를 num1 , num2 ..., num10해서 저장이 가능하지만 굉장히 많은 변수를 정의해야 하므로 번거롭습니다.

 

이럴  때, list를 사용하여 여러 개의 값을 담을 수 있습니다.

아래와 같이 사용할 수 있습니다.

empty_list = [] #빈 리스트 선언
list = [1,2,3] #1,2,3이 들어있는 리스트 선언
range_list = list(range(1,10)) #1~9까지 들어있는 리스트 range를 이용하여 선언

 

List에 저장할 수 있는 자료형

List에는 튜플, 딕셔너리, 정수, 문자열, 소수 등 모든 자료형이 저장이 가능합니다.

심지어 list 안에 list 까지 저장이 가능합니다.

또한, 같은 list안에 서로 다른 자료형을 저장할 수도 있습니다.

list = []
list.append("hi")
list.append(5)

print(list) #["hi",5]

List 다루기

값에 접근하는 방법 ( 인덱싱 )

list에 저장된 값에 접근하기 위해 index를 사용합니다.

index는 0부터 시작하므로 n개의 원소가 있는 list의 마지막 index는 n-1입니다.

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

값에 접근하는 방법 ( 네거티브 인덱싱 )

list에 저장된 값에 접근하기 위한 방법은 앞에서부터 접근하는 indexing만 있는 것이 아닙니다.

list의 마지막(뒷부분)에서 접근하는 negative indexing도 존재합니다.

negative index는 맨 뒤가 -1로 시작합니다. 따라서 맨 앞의 원소는 -n이 됩니다.

list = [1,2,3,4,5]
print(list[-1]) #5
print(list[-2]) #4
print(list[-3]) #3
print(list[-4]) #2
print(list[-5]) #1

슬라이싱 ( slicing )

list의 일부분만 이용하고 싶다면, slicing을 사용할 수 있습니다.

slicing은 list의 일부 범위에 접근할 수 있게 합니다.

: 를 이용하여 슬라이싱을 할 수 있으며, [ a : b ]를 한다면, a ~ b-1까지 요소가 담긴 리스트를 반환합니다.

list = [ 1,2,3,4,5 ]
print(list[1:3]) # [ 2,3 ] 1~2인덱스가 남긴 리스트 반환

 

요소 간격 슬라이싱 

예를 들어, 홀수번호 인덱스만 반환받고 싶을 때 이용할 수 있습니다.

[ 시작인덱스 : 끝 인덱스 : 간격 ] 으로 이용이 가능합니다.

list = [1,2,3,4,5,6]
print(list[0:5:2]) # 0~4인덱스까지 한 개 간격( 두개당 하나 )으로 따라서 = [1,3,5]

List 관련 메서드

list는 편리하게 이용 가능한 다양한 메서드들이 존재합니다. 

해당 메서드를 통해 보다 쉽고 빠르게 프로그래밍이 가능합니다.

- 아래 예시에서 L = [1,2,3]입니다.

 

list.append(value)

#리스트의 마지막에 값을 추가해주는 메서드
L.append(4)
print(L)#[1,2,3,4]

list.pop()

#리스트의 마지막 값을 반환하고 제거하는 메서드
tmp = L.pop()
print(L) #[1,2]
print(tmp) #3

list.pop(index)

#index에 있는 값을 반환 후, 제거하는 메서드
tmp = L.pop(1)
print(L) #[1,3]
print(tmp) #2

list.insert(index,value)

#index자리에 값을 넣는 메서드
L.insert(3,4)
print(L) #[1,2,3,4]

list.index(value)

#값과 일치하는 첫번째 인덱스를 반환하는 메서드 (제거X)
tmp =L.index(1)
print(tmp) # 1
print(L) #[1,2,3]

list.remove(value)

# 값과 일치하는 첫번째 값을 제거
L.remove(1)
print(L) #[2,3]

list.count(value)

#list안의 value값의 개수를  반환
tmp = L.count(1)
print(tmp) #1

list.extend(list)

#List에 다른 리스트의 값을 이어붙임
L.extend([4,5,6])
print(L) #[1,2,3,4,5,6]

list.reverse()

#리스트의 값을 뒤집는 메서드
L.reverse()
print(L) #[3,2,1]

list.sort()

#list 정렬 메서드
L = [1,3,2]
L.sort()
print(L) #[1,2,3]

 

 

list는 자료구조에서도 이용되기에 잘 이해하는 것이 중요합니다.

이 외에도 enumerate 등을 활용하여 여러가지 이용이 가능하므로 스킬을 많이 익히는 것이 중요할 것 같습니다.

 

enumerate에 대한 설명이 궁금하신 분은 아래 링크를 참고해주세요.

https://artificially-making-intelligence.tistory.com/12

 

인덱스와 배열값을 같이 가져오는 Enumerate()

Enumerate() 인덱스와 해당 인덱스의 배열값을 같이 반환하는 함수다. Enumerate(배열,startIndex) 이렇게 배열과 인덱스를 같이 적어서 사용할 수 있다. 물론, 아래와 같이 Enumerate(배열)로 적어 사용할 수

artificially-making-intelligence.tistory.com

profile

kingrangE

@전길원

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!