코테 공부/python

Python list 자료형 기억 안난부분 정리

sweet-po 2023. 5. 26. 15:38

인덱싱

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

 

>>> a[0]
1
>>> a[-1]
['a', 'b', 'c']
>>> a[3]
['a', 'b', 'c']
>>> a[-1][0]
'a'

(삼중 리스트도 똑같이 가능)

 

슬라이싱

리스트명[시작인덱스(포함):끝인덱스(미포함):간격(-1이면 거꾸로)]

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

문자열도 마찬가지

>>> a = "12345"
>>> a[0:2]
'12'
>>> a = [1, 2, 3, 4, 5]
>>> b = a[:2]
>>> c = a[2:]
>>> b
[1, 2]
>>> c
[3, 4, 5]

 

슬라이싱 응용하여 요소 삽입도 가능

>>> a = [10, 20, 30]
>>> a[1:1] = [500, 600]
>>> a
[10, 500, 600, 20, 30]

 

형오류 주의

>>> a = [1, 2, 3]
>>> a[2] + "hi"

형 오류(TypeError)가 발생했다.

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for +: 'int' and 'str'

a[2]에 저장된 값은 3이라는 정수인데 "hi"는 문자열. 정수와 문자열은 당연히 서로 더할 수 없기 때문에 형 오류가 발생

'3hi'처럼 만들고 싶다면 다음처럼 숫자 3을 문자 '3'으로 바꾸어야 한다.

>>> str(a[2]) + "hi"
3hi

 

삭제

>>> del a[1]

 

 

슬라이싱 기법을 사용하여 리스트의 요소 여러 개를 한꺼번에 삭제

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

 

 

인덱스 반환(index)

index(x) 함수는 리스트에 x 값이 있으면 x의 인덱스 값을 리턴

>>> a = [1,2,3]
>>> a.index(3)
2
>>> a.index(1)
0

위 예에서 리스트 a에 있는 숫자 3의 위치는 a[2]이므로 2를 리턴하고, 숫자 1의 위치는 a[0]이므로 0을 리턴한다.

리스트에 존재하지 않으면 값 오류(ValueError)

>>> a.index(0)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: 0 is not in list

 

요소 삽입(insert)

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

>>> a = [1, 2, 3]
>>> a.insert(0, 4)
>>> a
[4, 1, 2, 3]

>>> a = [10, 20, 30]
>>> a.insert(1, [500, 600])
>>> a
[10, [500, 600], 20, 30]

 0번째 자리, 즉 첫 번째 요소(a[0]) 위치에 값 4를 삽입

 

요소 제거(remove)

remove(x)는 리스트에서 첫 번째로 나오는 x를 삭제

>>> a = [1, 2, 3, 1, 2, 3]
>>> a.remove(3)
>>> a
[1, 2, 1, 2, 3]

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

>>> a.remove(3)
>>> a
[1, 2, 1, 2]

 

요소 끄집어내기(pop)

pop()은 리스트의 맨 마지막 요소를 리턴하고 그 요소는 삭제

>>> a = [1,2,3]
>>> a.pop()
3
>>> a
[1, 2]

 

pop(x)는 리스트의 x인덱스 요소를 리턴하고 그 요소는 삭제

>>> a = [1,2,3]
>>> a.pop(1)
2
>>> a
[1, 3]

 

확장(extend)

extend(x)에서 x에는 리스트만 올 수 있으며 원래의 a 리스트에 x 리스트를 더함

>>> a = [1,2,3]
>>> a.extend([4,5])
>>> a
[1, 2, 3, 4, 5]
>>> b = [6, 7]
>>> a.extend(b)
>>> a
[1, 2, 3, 4, 5, 6, 7]

 # a += [4, 5] 와 동일
 # a[len(a):] = [4, 5] 와 동일

>>> a = [10, 20, 30]
>>> a[len(a):] = [4, 5]
>>> a
[10, 20, 30, 4, 5]

 

출처 : https://dojang.io/mod/page/view.php?id=2281

        : https://wikidocs.net/14