dev/python
[python] 자료형 - List
Jayce_kim
2022. 2. 21. 19:43
[python] 자료형 - 문자열(1) - 표현방식과 연산
[python] 자료형 - 문자열(2) - 인덱싱, 슬라이싱
[python] 자료형 - 문자열(3) - count(), find()와 index()의 차이
python에서 list란?
순서가 있는 수정 가능한 객체의 집합
여러개의 서로 다른 타입의 객체들도 하나의 변수로 묶어서 관리할 수 있다...뭐 이런 기능인데
네 뭐 정의나 이론은 원래 어려운겁니다 그냥 실제로 보시죠 그게 빠르니
리스트명 = [객체1, 객체2, 객체3, ... , 객체n]
li_name1 = [1,3,5,7,9]
li_name2 = ['1',2,'3',3456,'백엔드 조아','backend joa']
li_name3 = [[1,2],{'a':'3'}, 3456, ('백엔드', '조아'), 'backend joa']
li_name4 = []
li_name5 = ['','','','','']
위 예시들처럼 단순히 나열만 할 수도 있고
2번처럼 숫자형,문자형처럼 각기 다른 타입의 객체들을 넣을 수도 있고
심지어 3번처럼 리스트 안에는 딕셔너리, 튜플, 리스트도 넣을 수 있다
4번처럼 아예 빈 리스트를 지정할 수도 있고 5번처럼 '빈 문자열'을 넣을 수도 있다
그럼 이런 리스트 어떻게 사용할까?
indexing
string처럼 list도 인덱싱이 가능하다
a=[a,2,c,4,e]
>>>a[0]
1
>>>a[2]
c
>>>a[1]+a[3] # 2+4
6
>>>a[-1]
e
앞서 리스트 안에는 리스트, 튜플, 딕셔너리를 넣을 수 있음을 알 수 있었다
그럼 리스트 안에 리스트도 인덱싱이 가능하지 않을까?
a = ['a','b','c',[1,2,3]]
>>> a[3]
[1,2,3]
>>> a[3][-1]
3
위 예시처럼 리스트 내의 리스트를 인덱싱한 후에 한번 더 인덱싱 하는 과정을 통해서 리스트 내의 리스트도 값을 알 수 있다
Slicing
앞선 문자열에 대해 알아보는 글에서 우리는 슬라이싱에 대해 배웠다
리스트도 슬라이싱이 가능하다
a = [1,2,3,4,5,6]
>>> a[1:5]
[2,3,4,5]
>>> a[3:]
[4,5,6]
>>> a[:3]
[1,2,3]
이렇게 슬라이싱한 값을 리스트에 담아서 반환한다
리스트 연산
문자열처럼 리스트도 연산이 가능하다
a = [1,2,3]
b = [3,4,5,6]
c = [1,2,3,'a']
>>> a+b
[1,2,3,3,4,5,6] # 중복된 값은 신경 쓰지 않는다
>>> b+a
[3,4,5,6,1,2,3] # 더한 순서대로 값을 나열한다
>>> c*3
[1,2,3,'a',1,2,3,'a',1,2,3,'a']
리스트 수정하기
다음의 방법으로 리스트의 인덱스를 지정한 후 값을 바꿀 수 있다
a = [1,2,3]
a[1] = 'abc'
a[2] = [1,2]
>>> a
[1,'abc',[1,2]]