[Python] 리스트

70_0ewd ㅣ 2024. 3. 28. 18:09

 리스트   

파이썬에는 다른 언어들에서 다뤄지는 배열과 유사한 성질의 리스트(list)라는 자료구조가 존재한다.  동일한 자료형만 가질 수 있는 배열과는 달리, 리스트는 다양한 자료형을 하나의 리스트 안에 담을 수 있다.

선언 방법

a = [1,2,'a','b',"xyz"]
b = []
c = list()
d = [0]*10 		#[0,0,0,0,0,0,0,0,0,0]
e = [i*2 for i in range(5)] 	#[0,2,4,6,8]

리스트는 위와 같은 다양한 방법을 통해 선언이 가능하다.

연산 

a = [1,2,3]
b = ['a','b','c']
c = a+b 	#[1,2,3,'a','b','c']
d = a*3 	#[1,2,3,1,2,3,1,2,3]
e = a*0 	#[]

이처럼 리스트 사이의 덧셈이 가능하며, 곱셈 연산 역시 가능하다. 0을 곱하며 빈 리스트가 생성됨을 유의하자.

인덱싱

a = [1,2,3,4,5,6,7,8,9,10]

#값 접근
a[0] 	#1
a[-1] 	#10
a[1:4] 	#[2,3,4]
a[:3] 	#[1,2,3]
a[5:] 	#[6,7,8,9,10]
a[:] 	#[1,2,3,4,5,6,7,8,9,10]

#값 수정
a[2]=50

리스트의 값 접근 방법은 배열과 동일하다. 
인덱스 슬라이싱을 할 땐 [시작 인덱스, 종료 인덱스+1]임을 꼭 기억하자.
슬라이싱을 할 때도 음수 인덱스를 적을 수 있다.

  • 메서드
a = [1,2,3,4,5,5,6]
b = [10,20]

#길이
len(a) 	# 7

#값 삭제
del(a[1]) 		# a=[1,3,4,5,5,6]
del(a[0:2]) 		# a=[4,5,5,6]
a.remove(5)  		# a=[4,5,6]	
a.pop() 	 	# a=[4,5], 6반환

#값 추가
a.append('a') 		# a=[4,5,'a']
a.insert(2,'x') 	# a=[4,5,'x','a']

#리스트 연결
a.extend(b) 		# a=[4,5,'x','a',10,20]

#리스트 뒤집기
a.reverse() 		# a=[20,10,'a','x',5,4]

#값 위치 반환
a.index(10) 		# 1

#모든 값 삭제
a.clear() 		# a=[]

리스트의 연결 메서드인 extend와 + 연산의 차이는 새로운 리스트의 생성여부라고 보면 된다. extend의 경우 a 자체에 다른 리스트가 붙는 것이고, +의 경우 새로운 리스트가 새로 생성되게 된다.