PYTHON

[Python]3. 리스트와 튜플

CodeJaram 2023. 6. 10. 22:12

1. 리스트: 많은 양의 데이터 관리

   -파이썬 자료구조 형태 중 하나

   -순서(index)가 있는 객체의 집합

   -기호 [](대괄호) 사용, 리스트 내부의 값은 ,(콤마)로 구분

-배열과 달리 서로 다른 자료형의 변수를 하나로 묶을 수 있다.

 

  • 빈 리스트 a=[]
  • 서로 다른 자료형 b=[1, 2, ‘my’ ‘name’]
  • 리스트 안 리스트 c=[1, 2, [‘my’, ‘name’]]

 

☆추가, 수정, 삭제 가능→리스트 함수 이용

 

2. 리스트의 인덱싱과 슬라이싱

-순서가 있는 데이터에서 인덱싱 슬라이싱 필수

 

  • 인덱싱: 리스트명[인덱스번호]

   -리스트 안에 있는 리스트 속 값 불러오기

    → 리스트명[첫 번째 리스트의 인덱스번호][두 번째 리스트의 인덱스번호]

 

  •  슬라이싱: 리스트명[시작인덱스: 끝 인덱스(포함x)]

 

3. 리스트의 연산(더하기): 리스트명[인덱스번호]+리스트명[인덱스번호]

 

4. 리스트 함수

1)값 추가하기

  • append(): 맨 뒤에 값을 추가하는 역할

    - 사용방법: 리스트명.append(추가할 값) * 온점(.): 접근 연산자

   -추가할 값은 정수, 문자열, 리스트 등 다양한 자료형 입력 가능

 

   -단, 복수의 값을 리스트로 묶지 않고 추가할 수 없음→반드시 리스트로 묶기

      예)list1.append(1,2,3)(x) →list1.append([1,2,3])(x)

 

   -하나의 값을 리스트로 묶는 것은 가능하다

     예)list.append([1])

 

  • insert(): 원하는 위치에 값을 추가하는 역할

    -사용방법: 리스트명.insert(인덱스번호, 추가할 값)

    -빈 리스트에 append()함수를 활용하여 새로운 값 추가 가능

 

2)값 수정하기

   -리스트명[수정하고 싶은 인덱스번호]=수정할 값

 

3)값 삭제하기

  • del 키워드: del 리스트명[삭제할 값의 인덱스 번호]
  • remove() 함수: 리스트명.remove(삭제할 값)

 

[del remove의 차이점]

  del remove
제거방법 인덱스 번호 삭제할 값
리스트 안에 리스트에 있는  값 삭제
list1=[1, [2,3,4]]
가능
del list1[1][0]
불가
list1.remove(list1[1])
리스트 전체만 삭제 가능

 

4)값 정렬하기

  • sort(): 리스트명.sort()

      -오름차순 정렬(기본값)

      -내림차순 정렬: 리스트명.sort(reverse=True)

 

  • reverse(): 인덱스 위치를 역순으로 배치 예)시작인덱스번호↔끝 인덱스번호

       -내림차순 정렬: sort()로 오름차순 정렬 후 reverse 함수로 뒤집기

 

 

*shift+tab: 해당 기능 설명 펼치기

 

5)기타 함수

  • index(값): 데이터의 위치값을 알려주는 함수

        -리스트명. index(값)

        -중복된 값이 있는 경우 중복된 값 중 먼저 있는 값의 인덱스 번호 출력

        예)’가을’이 2번, 4번 인덱스에 있는 경우 2번만 출력

 

  • pop(): 리스트의 가장 마지막 값을 출력 후 제거하는 함수

          -리스트명.pop()

      [반대] append(): 리스트 맨 뒤에 값을 추가하는 함수

 

  • len(리스트명): 리스트의 길이(리스트 안 요소의 개수)를 알려주는 함수

         -len(리스트명)

 

[실습 1]music_list에 인덱스번호, 노래제목, 가수명을 입력받아 insert함수로 추가하기

 

music_list=[['Hype boy', 'NewJeans'], ['LOVE DIVE', 'IVE'], ['사건의 지평선', '윤하']]

loc= int(input("추가하고 싶은 인덱스 위치 입력>>"))

song=input("추가하고 싶은 노래 제목 입력>>")

singer=input("추가하고 싶은 가수명 입력>>")

music_list.insert(loc, [song, singer]) #리스트 추가(위치, 추가할 값)

music_list

 

5. 튜플

 

  -파이썬의 자료구조 형태 중 하나

  -순서(index)가 있는 객체의 집합

  -많은 양의 데이터를 관리할 때 사용, 여러 개의 데이터를 하나로 묶어 관리

  -자료형의 구분이 없이 서로 다른 자료형을 하나로 묶을 수 있음(배열과의 차이점)

  -인덱스 번호가 존재: 0번부터 순차적으로 번호가 부여됨

 

  -기호는 소괄호()로 작성하며, 내부 값은 ,(콤마)로 구분

      ☆추가, 수정, 삭제 불가능

  -값이 변경되면 안 되는 고정적인 값을 관리할 때 사용 예)주민등록번호

 

<리스트와 튜플의 공통점과 차이점>

구분 리스트 튜플

공통점
자료형과 상관없이 복수 개의 요소들을 묶을 수 있다.
요소의 순서(index)를 관리한다.


차이점
가변적(추가, 수정,삭제 o) 불변적(추가, 수정, 삭제x)
- 입력할 요소의 개수가 명확하지 않음
- 요소의 개수가 유동적
-입력할 요소의 개수를 사전에   
  정확하게 알고 있음
-요소의 개수가 변동이 없음

 

6. in, not in 키워드

  • in: 찾고자 하는 값이 포함되어 있으면 True 출력, 아니면 False 출력
  • not in: 찾고자 하는 값이 포함되어 있지 않으면 True 출력, 아니면 False 출력

 

[실습2]

lst=['딸기', '바나나', '수박', '체리', '포도']

fruit=input("과일 입력>>")

if fruit in lst[ : len(lst)]:

	print(f"{fruit}(은)는 리스트에 {lst.index(fruit)}번째 인덱스에 들어있습니다.")

elif fruit not in lst[ : len(lst)]:

	print(f"{fruit}(은)는 리스트에 들어있지 않습니다.")

 

[tip]

-자동완성: tab

-주피터 노트북 테마 설정

https://blog.naver.com/PostView.naver?blogId=smhrd_official&logNo=222753538506&categoryNo=25&parentCategoryNo=0&viewDate=¤tPage=1&postListTopCurrentPage=&from=postList&userTopListOpen=true&userTopListCount=30&userTopListManageOpen=false&userTopListCurrentPage=1

'PYTHON' 카테고리의 다른 글

[Python]6. 딕셔너리, 함수  (0) 2023.06.19
[Python]5. 반복문 실습  (0) 2023.06.15
[Python]4. 반복문  (0) 2023.06.11
[Python]2. 연산자와 조건문  (1) 2023.06.09
[Python]1. 변수와 문자열  (0) 2023.06.05