Language/Python

Python 리스트 자료형

괘창 2024. 4. 24. 18:27

● 리스트 자료형

: 리스트를 생성할 때 [ ]로 감싸주고, 요소값은 ,쉼표(,)로 구분(자바의 리스트와 동일)

리스트명 = [요소1, 요소2, 요소3, ...]

 

예시)


※ 파이썬 리스트 형태

a = [] 비어있는 리스트 # a = list()로 생성 가능
b = [1,2,3] 숫자를 요소값으로 가지는 리스트
c = ['life','is','too','short'] 문자열을 요소값으로 가지는 리스트
d = [1,2,'life','is'] 숫자, 문자열을 함께 요소값으로 가진 리스트
e = [1,2,['life','is']] 숫자, 리스트를 요소값으로 가진 리스트

* 어떤 값(자료형)이라도 요소로 가질 수 있다.

 

 

 


- 리스트 인덱싱

 

예시 1)

** a의 첫번째 요소 a[0] = 1 , a[2] = 3으로 연산이 가능하며 4가 출력된다.


예시 2)

** 리스트 a에 숫자 1,2,3 뿐만 아닌 다른 리스트 ['a', 'b', 'c']를 포함하였으며 인덱스 값에 맞춰 출력된다.

** a[-1]은 마지막 요소값인 리스트 ['a', 'b', 'c']를 출력


- 리스트에 내용 중 원하는 값 가져오기 예시)

 

예시 1)

** a[3]은 ['a', 'b', 'c'] 리스트를 가르키며 [0]을 통해 해당 리스트의 첫 번째 요소값을 불러 올 수 있다.

 

예시 2)

** 3중 리스트도 예시1과 동일. 다만 리스트를 다중 중첩해서 사용하는 것은 혼란스러울 수 있어 자주 사용하지 않음


- 리스트 슬라이싱

 

예시)

** 문자열의 슬라이싱과 사용방법은 동일하다. 


- 중첩된 리스트에서 슬라이싱

 

예시)

** a[2:5]는 index 0부터 시작할 때 2의 값은 3이되며, 5의 값은 4를 나타낸다.


- 리스트 연산하기

 

1. 리스트 더하기(+)

 

예시)

** 리스트 사이에스 + 는 2개의 리스트를 합치는 기능을 한다 // 문자열에서 "abc"+"def" = "abcdef"가 된다.


2, 리스트 반복하기(*)

 

예시)

** [1,2,3]가 3번 반복되어 출력


3. 리스트 길이 구하기

 

예시)

** len() 사용, 리스트외 듀플, 딕셔너리에도 사용 가능


※ 리스트 연산 오류 체크
a = [1, 2, 3]
a[2] + "hi"
위 값을 입력할 경우 오류가 발생한다.
>>TypeError: unsupported operand type(s) for +: 'int' and 'str'

a[2]는 정수인데 "hi"는 문자열이다. 정수와 문자열은 서로 더할 수 없기 때문에 오류가 발생한 것이다.

정수를 문자열로 바꾸기 위해선 아래와 같이 수정이 필요하다
str(a[2]) + "hi"

위와 같이 수정하면 3hi 가 정상적으로 출력된다.

** str은 정수나 실수를 문자열로 바꿔주는 파이썬 내장 함수이다.

 


- 리스트의 수정과 삭제

 

1. 리스트 값 수정

 

예시)

** index 2의 값인 3이 4로 변경되어 출력

 


 

2. 리스트 값 삭제

 

예시)

** del 함수를 사용하여 index 1의 값인 2가 삭제 되어 1, 3 출력

** del[x] 는 x 번째 요소값 삭제 // del 객체(파이썬에 사용되는 모든 자료형) 로 사용

 


3. 리스트 슬라이싱 삭제

 

예시)

** a[2:]에 해당하는 리스트 요소인 [3,4,5] 삭제 후 출력


- 리스트 관련 함수

 

1. 리스트 요소 추가(append)

 

예시)

** append는 '덧붙이다. 첨부하다'란 뜻으로 리스트 안에 리스트도 추가할 수 있다.


2. 리스트 정렬(sort)

 

예시)

** 알파벳, 한글도 정렬 가능(ascii코드로 인해 가능/A~Z, a~z 숫자 부여)


3. 리스트 뒤집기/역순 출력(reverse)

 

예시)

** reverse함수는 출력된 리스트를 역순으로 출력한다.

** 요소를 순서대로 정렬한 후 역순 출력이 아닌 현재 리스트의 역순 출력이다.


4. 인덱스 반환(index)

 

예시)

** index() 함수는 리스트에 값이 있으면 해당 인덱스의 값(위치 값)을 리턴

** index() 값이 없는 경우 오류 발생


5. 리스트에 요소 삽입(insert)

 

예시)

** insert(a,b)는 리스트의 a 번쨰 위치에 b를 삽입하는 함수

** a.insert(0,'하')는 0번째 위치에 하 추가, a.insert(2,'창')은 2번쨰 위치에 창 추가하여 출력


6. 리스트 요소 제거(remove)

 

예시)

** a가 3이라는 값을 2개 가지고 있을 경우 첫번째 3만 제거 된다.

** a.remove(3)을 한번 더 실행해야 3이 완전 삭제된다.

예시)

 


7. 리스트 요소 꺼내기(pop)

pop() 함수는 리스트의 맨 마지막 요소를 리턴하고 해당 요소는 삭제한다.

 

예시)

예시2)

** a 리스트를 살펴보면 마지막 요소인 3을 삭제하고 [1,2]만 남아 출력

** pop() 괄호안에 매개변수로 index 값을 넣을 경우 해당 값을 뽑아 낸후 삭제/없는 경우에는 마지막값 뽑아낸 후 삭제

 

예시)

** a.pop(1)은 a리스트의 index 1 값이며, 리스트 안의 2이다. a 출력 시 2가 삭제된 [1,3]만 출력


8. 리스트에 포함된 요소 x의 개수 세기(count)

 

예시)

**count(x)는 리스트의 요소안에 x가 몇개인지 세어 리턴 // 1이라는 값이 리스트 내에 2개가 있어 2 리턴


9. 리스트 확장(extend)

 

예시 1)

** extend(x)에서 x에는 리스트만 올 수 있으며, 기존 a 리스트에 x 리스트를 더하게 된다.

 

예시 2)

** b에 대입한 리스트[6,7]도 a 리스트에 확장할 수 있다.

 

예시 3)

** 예시 2)의 a.extend([4,5])는 a +=[4,5]와 동일한 표현식이다.