TIL_68. Python_LIST

소고기는레어·2021년 2월 3일
0

TIL 📝

목록 보기
70/96
post-thumbnail

2021. 02. 03 수요일

Introduction to Python - Python Lists

LIST

  • 파이썬에서는 [대괄호] 를 활용하여 목록을 생성할 수 있다.

  • 이 목록에는 데이터 유형에 상관없이 모두 들어갈 수 있으며, 목록 안에 목록을 생성하는 것, 그리고 변수 또한 포함할 수 있다.

saving = '탕수육'
menu = ['짬뽕', saving, ['군만두', '물만두'], 12345]
print(menu)

['짬뽕', '탕수육', ['군만두', '물만두'], 12345]


Subset

list = ['a', 'b', 'c', 'd', 'e']

위와 같은 목록에서, 특정 데이터만 추출을 원한다면 아래의 방법들을 사용하면 된다.

list[3] #'d'
list[0] #'a'
list[-1] #'e'
list[1:4] # 'b', 'c', 'd'
list[:3] # 'a', 'b', 'c'
list[2:] # 'c', 'd', 'e'
  • [] 안에 있는 숫자는 목록에서 데이터의 순서를 의미한다.

  • 순서는 0부터 시작하며 위의 목록에서 0은 'a'를 의미하고 3은 'd'를 의미하게 된다.

  • 또한 음수를 활용하여 목록의 내림차순으로 선택이 가능한데, 이 경우 -1은 'e'를 의미한다.

  • : 를 활용하여 범위를 지정할 수 있다. list[1:4] 를 보면 첫번째에서 네번째까지로 범위를 지정하였는데, 시작점은 포함하지만 끝점은 포함하지 않는다.
    따라서 list[1:4] 의 경우 1~3의 범위를 포함하게 된다.

  • list[:3] 의 경우 목록의 맨 처음부터 뒤에 지정한 범위까지 포함하게 된다.
    list[2:] 의 경우는 앞에 지정한 범위에서 목록의 마지막까지 포함하게 된다.


목록에서 원하는 데이터를 추출하여 연산이 가능하다.

list = [10, 20, 30, 40, 50]

  • 위와 같은 목록이 있다고 가정했을 때 print(list[1] + list[-2]) 와 같이 문법을 작성한 경우

    • 20 + 40을 연산하게 되고 60이라는 결과를 출력하게 된다.

목록 안의 목록에서 데이터 추출

menu =
[['물만두', '군만두', '찐만두'],
['짬뽕', '해물짬뽕', '차돌짬뽕'],
['짜장', '해물짜장', '고추짜장']]

  • 위의 목록에서 짬뽕에 관련한 데이터만 추출하고 싶다면 list[1]

    • menu[1] -> ['짬뽕', '해물짬뽕', '차돌짬뽕']
  • 해물짜장만 추출하고 싶다면 list[2][1]

    • 첫번째 대괄호[2]는 목록을 선택하고, 두번째 대괄호[1]는 선택한 목록에서 데이터를 선택한다.

      • menu[2] -> ['짜장', '해물짜장', '고추짜장']

      • menu[2][1] -> ['해물짜장']


List에 새로운 데이터 추가, 삭제, 변경

menu = ['짬뽕', 6000, '짜장면', 5000, '탕수육', 15000]

  • 신메뉴 군만두를 5000원에 출시하게 되어서 '군만두' 와 5000 을 목록에 추가해야 한다.

    • menu = menu + ['군만두', 5000]
  • 재료비가 올라서 짜장면 가격을 6000으로 변경해야 한다.

    • menu[3] = 6000
  • 짬뽕이 인기가 없어 메뉴에서 삭제하기로 했다.

    • del(menu[:2])
  • 메뉴판에 대격변이 일어난 후 메뉴판을 확인해보면 다음과 같다.

    • print(menu)

      ['짜장면', 6000, '탕수육', 15000, '군만두', 5000]

List 복제 시 주의할 점

menu1 = ['짜장면', 6000, '탕수육', 15000, '군만두', 5000]

  • 똑같은 메뉴판을 하나 더 만들기로 했다.

    • menu2 = menu1

    • 이 경우 menu1 를 수정하면 menu2에도 반영이 되고, 반대의 경우도 마찬가지이다.

    • 위의 명령어는 다음과 같은 결과를 보이기 때문이다.

      menu1 / menu2 ➔ ['짜장면', 6000, '탕수육', 15000, '군만두', 5000]

    • 따라서 menu2 에서 짜장면 가격을 5000원으로 내린다면 menu1의 짜장면 가격도 5000원이 된다. menu2[1] = 5000; print(menu1)

      ['짜장면', 5000, '탕수육', 15000, '군만두', 5000]

  • 서로 다른 메뉴판을 만들기로 했다.

    • menu2 = list(menu1) or menu2 = menu1[:]
    • 이 경우엔 한 쪽의 메뉴를 수정해도 다른 쪽에는 반영되지 않는다.
    • 위 명령어는 다음과 같은 결과를 보이기 때문이다.

      menu1 = ['짜장면', 6000, '탕수육', 15000, '군만두', 5000]
      menu2 = ['짜장면', 6000, '탕수육', 15000, '군만두', 5000]

    • 따라서 menu2 에서 짜장면 가격을 5000원으로 내려도 menu1의 가격은 그대로이다.
      menu2[1] = 5000

      menu1 = ['짜장면', 6000, '탕수육', 15000, '군만두', 5000]
      menu2 = ['짜장면', 5000, '탕수육', 15000, '군만두', 5000]

profile
https://www.rarebeef.co.kr/

0개의 댓글