Programming Language/Python

[Python] 04. 리스트(list) 자료형

lumana 2023. 11. 4. 15:53

리스트(list) 자료형


  • 리스트(list)란?

    • 임의의 파이썬 objects들의 모임

    • Compound data

    • 입력된 순서 유지

    • 어떤 자료형도 저장 가능

  • 리스트(list) 생성 방법

    • 기본적인 생성 방법
    리스트명 = [a, b, c, d, ...]
    • example

      • list1 = list() # 생성자를 사용하여 리스트 생성

      • list2 = [] # empty list

      • list3 = [1, 2, 3, True, 'A', [1, 2, 3]] # 리스트 자체를 요솟값으로 가질 수 있다

      • list4 = ['Life', 'is', 'too', 'short']

  • 리스트 위치 반환(index)

    a = [1, 2, 3]
    a.index(3)
    res : 2 # 3이란 값이 2번 인덱스에 있다.
    a.index(1)
    res : 0
    a.index(4)
    res : 오류 발생
  • 리스트(list) 인덱싱

    a = [1, 2, 3]
    a[0]
    res : 1
    
    a[0] + a[2]
    res : 4
    
    a[-1]
    res : 3
    • 리스트 안에 리스트가 있는 경우 데이터에 접근하는 방법

      a = [1, 2, 3, ['a', 'b', 'c']]
      a[3]
      res : ['a', 'b', 'c']
      
      a[-1][0]
      res : 'a'
      
      a[-1][1]
      res : 'b'
  • 리스트(list) 슬라이싱

    a = [1, 2, 3, 4, 5]
    a[0:2]의 결과 : [1, 2]# 0부터 2 전까지 --> 0, 1
    --> 문자열의 슬라이싱과 사용법이 동일하다.
    
    a[:2] # 처음부터 a[1]까지
    a[2:] # a[2]부터 끝까지
    
    a = [1, 2, 3, ['a', 'b', 'c'], 4, 5]
    a[3][:2] # [3]으로 리스트 접근 후 [:2]
    res : ['a', 'b']
  • 리스트(list) 연산

    • 리스트 더하기

      a = [1, 2, 3]
      b = [4, 5, 6]
      a + b
      res : [1, 2, 3, 4, 5, 6]
    • 리스트 반복하기

      a = [1, 2, 3]
      a * 3
      res : [1, 2, 3, 1, 2, 3, 1, 2, 3]
    • 같은 자료형끼리만 연산이 가능하다

      a = [1, 2, 3]
      a[2] + "hi"
      res : 에러발생 
      Why? a[2] 는 정수형이고, hi는 문자열이기 때문에, 다른 자료형끼리 연산을 실행해 오류가 발생한다.
  • 리스트 길이 구하기

    • len(리스트이름)

      a = [1, 2, 3]
      len(a)
      res : 3
  • 리스트의 수정과 삭제

    • 리스트 수정

      a = [1, 2, 3]
      a[2] = 4 # 2번 인덱스에 있는 3을 4로 변경
    • 리스트 요소 삭제(del, remove)

      del (객체)

      (리스트).remove(index)

      a = [1, 2, 3]
      del a[1] # 1번 인덱스에 있는 2 삭제
      a
      res : [1, 3]
      
      a = [1, 2, 3, 4, 5]
      del a[2:] # 2번 인덱스에 있는 요소부터 끝 인덱스이 있는 요소 전부 삭
      a
      res : a[1, 2]
      
      a = [1, 2, 3, 1, 2, 3]
      a.remove(3)
      a
      res : [1, 2, 1, 2, 3]
    • 리스트에 요소 추가 / 삽입(append, insert)

      (리스트).append(추가할 요소)

      (리스트).insert(a,b) : a번째 위치에 b를 삽입한다

      a = [1, 2, 3]
      a.append(4)
      a
      res : [1, 2, 3, 4]
      
      a = [1, 2, 3]
      a.append([5, 6])
      a
      res : [1, 2, 3, 4, [5, 6]]
      
      a = [1, 2, 3]
      a.insert(0, 4)
      a
      res : [4, 1, 2, 3]
      
      a.insert(3, 5)
      a
      res : [4, 1, 2, 5, 3]
    • 리스트 정렬 함수(sort)

      • (리스트).sort() # 기본적으로 오름차순으로 정렬

      • (리스트).sort(reverse=True) # 리스트가 내림차순으로 정렬

        a = [1, 4, 3, 2]
        a.sort()
        a
        res : [1, 2, 3, 4]
        
        a.sort(reverse=True)
        a
        res : [4, 3, 2, 1]
        
        a = ['a', 'c', 'b']
        a.sort()
        a
        res : ['a', 'b', 'c']
    • 리스트 뒤집기(reverse 함수)

      (리스트).reverse()

      a = ['a', 'c', 'b']
      a.reverse()
      a
      res : ['b', 'c', 'a']
    • 리스트 요소 끄집어 내기(pop 함수)

      • 리스트.pop() : 리스트 맨 마지막 요소를 return 하고 요소는 삭제한다

      • 리스트.pop(x) : x번째 요소를 return하고 그 요소는 삭제한다.

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

a
res : [1, 1, 2]
```
  • 리스트에 포함된 요소 x의 개수 세기(count 함수)

    a = [1, 2, 3, 1]
    a.count(1)
    res : 2
  • 리스트 확장(extend) 함수

    • (리스트).extend(x)

    • x는 오직 리스트만 가능, a 리스트에 x 리스트를 더한다.

      a = [1, 2, 3]
      a.extend([4, 5]) # a += [4, 5]와 동일
      a
      res : [1, 2, 3, 4, 5]
      
      b = [6, 7]
      a.extend(b)
      a
      res : [1, 2, 3, 4, 5, 6, 7]

참조) Do it! 점프 투 파이썬 (박응용 지음), https://wikidocs.net (파이썬 계단밟기)