앎을 경계하기

Programming/Python

Python 리스트 생성, 인덱싱, 슬라이싱, 수정, 삭제

양갱맨 2019. 12. 25. 22:32

 

리스트

표현방법

list = [요소1, 요소2, 요소3, ...]

a = []
b = [1,2,3]
c = ['life', 'is', 'too', 'short']
d = [1,2,'life','is']
e = list()
a, b, c, d, e
([], [1, 2, 3], ['life', 'is', 'too', 'short'], [1, 2, 'life', 'is'], [])

 

a == e # 빈 리스트는 [], list()로 생성할 수 있다.
True

 

리스트 인덱싱, 슬라이싱

list는 문자열과 같이 인덱싱하고 슬라이싱할 수 있다.

a = [1,2,3]
a[0]
1

 

a[0]+a[2]
4

 

a[-1]
3

 

a = [1,2,3,['a','b','c']]
a[0]
1

 

a[-1]
['a', 'b', 'c']

 

a[-1][0]
'a'

 

a = [1,2,['a','b',['life','is']]] # 삼중 리스트
a[0]
1

 

a[-1]
['a', 'b', ['life', 'is']]

 

a[-1][0]
'a'

 

a[-1][-1]
['life', 'is']

 

a[-1][-1][-1] # 'is'
'is'

 

a[-1][-1][0][0] # 'life'의 'l'을 나타낸다.
'l'

 

a = [1,2,3,4,5]
a[:2]
[1, 2]

 

a = '12345'
a[:2]
'12'

 

리스트 연산자

a = [1,2,3]
b = [4,5,6]
a+b
[1, 2, 3, 4, 5, 6]

 

a = [1,2,3]
3*a # 요소를 세번 반복하게 된다.
[1, 2, 3, 1, 2, 3, 1, 2, 3]

 

a = [1,2,3]
a[2]+'hi' # 숫자와 문자열이 만나 에러나게된다.
---------------------------------------------------------------------------

TypeError                                 Traceback (most recent call last)

<ipython-input-30-04d501542b5f> in <module>
      1 a = [1,2,3]
----> 2 a[2]+'hi' # 숫자와 문자열이 만나 에러나게된다.


TypeError: unsupported operand type(s) for +: 'int' and 'str'

 

#'3hi'가 나오려면
a = [1,2,3]
str(a[2])+'hi'
'3hi'

 

리스트 수정, 삭제

a = [1,2,3]
a[2] = 4
a
[1, 2, 4]

 

a[1:2]
[2]

 

a[1:2] = ['a','b','c']
a
[1, 'a', 'b', 'c', 4]

 

a[1:2]
['a']

 

a = [1,2,3]
a[1] = ['a','b','c']
a
[1, ['a', 'b', 'c'], 3]

a[1:2]로 범위를 지정해서 수정하는 경우와 a[1] 인덱스를 지정해서 수정하는 것은 결과가 다르다는 것을 주의하자.

 

a[1:3] = [] # 삭제
a
[1]

 

a = [1,2,3,4]
del a[0] # 삭제
a
[2, 3, 4]

 

del a[:2] # 범위로 표현해서 삭제하는 것도 가능함.
a
[4]

참고 도서 : Do It! 점프 투 파이썬

'Programming > Python' 카테고리의 다른 글

Python 조건문, 반복문  (0) 2019.12.26
Python 변수, 객체, 복사  (0) 2019.12.25
Python tuple, dictionary, set  (0) 2019.12.25
Python 리스트 관련 함수  (0) 2019.12.25
Python 문자열 관련 함수  (0) 2019.12.25