dev/python

[python] 자료형 - List

Jayce_kim 2022. 2. 21. 19:43

[python] 자료형 - 변수

[python] 자료형 - 숫자형

[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]]