code/python

[python] 자료형 정리 2 - 리스트

stuvwxy 2022. 3. 29. 14:17

자료형이란,
프로그래밍을 할 때 쓰이는 숫자, 문자열 등 자료 형태로 사용하는 모든 것을 의미한다.

 

  1. 자료형 종류  

자료형 예시
숫자(int) a = 613
 문자열(str)  b = '613'
 리스트(list)  c = [2, 16, 3, 9]
튜플(tuple) d = (9, 1, 9, 3, 10, 13)
딕셔너리(dict) e = [1:'이름', 2:'나이', 3:'성별']
집합(set) f = {12, 03, 12, 30}
불(bool) True, False

이 중  리스트(list) 에 대해 알아보려 한다!

 

  2. 리스트 자료형  

리스트(list)는,
자료구조 형태 중 하나이고, 순서가 있는 수정가능한 객체의 집합을 의미한다.
대괄호([])로 표현하고, 리스트 내부의 값은 콤마(,)로 구분한다.

 

 (1) 리스트 사용 

  • 정수, 실수, 문자열, 불 형태의 데이터를 저장할 수 있다.
list1 = [1, 2, 3, 4, 5]
list2 = [2.18, 3.9, 6.13, 9.1]
list3 = ["휴대폰", "이어폰", "커피", "비타민"]
list4 = [True, False, True, True]

 

  • 리스트 안에 리스트 타입으로 삽입이 가능하다.
>>> list5 = [6, 7, 8, 9, ['6.13', 'phone']]
>>> list5

[6, 7, 8, 9, ['6.13', 'phone']]

 

 

 (2) 리스트 인덱싱

리스트도 문자열처럼 인덱싱과 슬라이싱이 가능하다.

  • 인덱싱
    인덱싱 적용 후 요소끼리 연산이 가능하다.
>>> a = [1, 2, 3, 4, 5]
>>> b= a[0]

1

# -------------------------

>>> c = [6, 7, 8, 9, 10]
>>> d= c[2] + c[4]

18

 

  • 이중 리스트
>>> e = [1, 2, 3, [4, 5, 6]]
>>> e[-1][0]

4


e[-1][0]을 살펴보면,
e변수의 [-1]는 [4, 5, 6] 이고,
이 요소 중 [0]는 첫번째 요소이기 때문에 4가 출력 된다.

 

  • 삼중 리스트
>>> g = [1, 2, ['a', 'b', ['double', 'triple']]]
>>> g[2][2][0]

'double'


g[2][2][0]을 살펴보면,
g변수의 [2]는 ['a', 'b', ['double', 'triple']] 이고,
이 요소 중 [2]는 ['double', 'triple']이고,
이 요소 중 [0]은 첫번째 요소이기 때문에 'double'이 출력 된다.

 

 (3) 리스트 슬라이싱 

문자열과 동일하다.

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

1, 2

 

>>> c = [1, 2, 3, 4, 5]
>>> c[:2]

[1, 2]

# ------------------------

>>> d = [1, 2, 3, 4, 5]
>>> d[2:]

[3, 4, 5]


c[:2]는 리스트 c의 첫번째 요소부터 두번째 요소까지 나타낸다.

d[2:]는 리스트 d의 세번째 요소부터 끝까지 나타낸다.

 

 (4) 리스트 연산 

  • 리스트 더하기
>>> a = [1, 2, 3]
>>> b = [4, 5, 6]
>>> a + b

[1, 2, 3, 4, 5, 6]

 

  • 리스트 반복하기
>>> a = [1, 2, 3]
>>> a * 3

[1, 2, 3, 1, 2, 3, 1, 2, 3]

 

  • 리스트 길이 구하기
>>> a = [1, 2, 3, 5, 7]
>>> len(a)

5

 

※ 연산 시 형 오류

# 오류 코드

>>> a = [1, 2, 3]
>>> a[0] + "alphabet"

error


정수와 문자열은 연산이 불가능하다.


>>> a = [1, 2, 3]
>>> str(a[0]) + "alphabet"

1alphbet


이 경우, 정수를 문자열로 변환한다면 연산이 가능하다. str을 씌워주면 된다!

 

 (5) 리스트 함수 
> 수정, 삭제, 추가, 정렬, 뒤집기, 반환, 삽입, 제거, 꺼내기, 세기, 확장

 

  • 값 수정하기
>>> a = [1, 2, 3]
>>> a[2] = 5
>>> a

[1, 2, 5]


a[2]의 요소값을 5로 지정한 뒤 리스트a를 출력해보면 요소값이 바껴있음을 확인할 수 있다.

    • 값 삭제하기
>>> b = [1, 2, 3]
>>> del b[1]
>>> b

[2, 3]


del a[1]은 리스트b에서 [1]번째 요소를 삭제한다.

 

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

[1, 7]


del a[2:]은 리스트a에서 [2]번째 요소부터 끝까지 삭제한다.

 

    • 값 추가하기 (append)
>>> a = [1, 2, 3]
>>> a.append(4)
>>> a

[1, 2, 3, 4]

# ------------------

>>> a = [1, 2, 3]
>>> a.append([7, 9])
>>> a

[1, 2, 3, [7, 9]]



  • 값 정렬하기 (sort)
>>> a = [1, 7, 4, 2]
>>> a.sort()
>>> a

[1, 2, 4, 7]

# --------------------

>>> b = ['t', 'b', 'z', 'y']
>>> b.sort()
>>> b

['b', 't', 'y', 'z']


리스트의 요소를 순서대로 정렬해준다.

 

    • 값 뒤집기 (reverse)
>>> c = [1, 6, 3, 7, 24]
>>> c.reverse()
>>> c

[24, 7, 6, 3, 1]



    • 값 위치 반환하기 / 확인하기 (index)
>>> a = [1, 2, 5, 7, 9, 34, 786, 12, 653, 111, 75, 31]
>>> a.index(34)

5


a.index(34)는 숫자 34의 위치 값을 보여준다. 34는 [5]에 위치 하기 때문에 5 반환한다.

요소 개수가 적을 경우 상관없지만, 요소 개수가 너무 많아 육안으로 분석하기 힘들때 사용하면 좋다.

 

    • 리스트에 요소 삽입 (insert)
>>> a = [1, 2, 3, 4]
>>> a.insert(2, 5)
>>> a

[1, 2, 5, 3, 4]


a.insert(2, 5)는 a[2]의 위치에 5를 삽입한다.

대체가 아니고 요소를 삽입하여 그 뒤 요소들은 밀리는 것 뿐이다.

 

    • 리스트 요소 제거 (remove)
>>> a = [3, 5, 6, 2, 1, 3, 5, 1, 1]
>>> a.remove(5)
>>> a

[3, 6, 2, 1, 3, 5, 1, 1]


리스트에서 첫번째로 나오는 5를 삭제한다.

리스트 안에 있는 5를 전부 삭제하는 것이 아닌 첫번째로 나오는 5만 해당한다.

 

    • 리스트 요소 끄집어내기 (pop)
>>> a = [1, 2, 3, 4]
>>> a.pop()

3

>>> a

[1, 2]


a.pop()는 리스트의 맨 마지막 요소를 돌려주고 그 요소는 삭제한다.

리스트 a를 다시 확인하면 3은 삭제되고 나머지 [1, 2]만 남아있다.

 

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

2

>>> a

[1, 3, 4]


b.pop(1)은 b[1]의 값을 돌려주고 그 값은 삭제한다.

리스트 b를 다시 확인하면 b[1]의 값인 2는 삭제되고 나머지 [1, 3, 4]만 남아있다.

 

    • 리스트에 포함된 요소 개수 세기 (count)
>>> a = [1, 2, 3, 1]
>>> a.count(1)

2


a.count(x)는 리스트 안에 x가 몇 개 있는지 세어 반환한다.

 

    • 리스트 확장 (extend)
>>> 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.extend([4, 5]) 는 a+= [4, 5] 와 같다.