리스트

자바스크립의 배열과 유사

  • 파이썬은 다른 값들을 덩어리로 묶는데 사용되는 여러 가지 컴파운드 (compound) 자료 형을 알고 있습니다.

  • 가장 융통성이 있는 것은 리스트 인데, 대괄호 사이에 쉼표로 구분된 값(항목)들의 목록으로 표현될 수 있습니다.

  • 리스트는 서로 다른 형의 항목들을 포함할 수 있지만, 항목들이 모두 같은 형인 경우가 많습니다.

값 읽어오기

_list = [1,2,3,4,5]
  • 첫번째 값 _list[0]

  • 뒤에서 첫번째 값 _list[-1]

  • 리스트에 들어있는 값 보다 큰 값을 읽어오려고 하면 에러

  • 문자열 처럼 리스트는 인덱싱하고 슬라이싱할 수 있다.

    • 슬라이싱: 리스트나 문자열에서 값을 여러개 가져오는 기능

    • list[시작값:끝값:step]

    • 모든 슬라이스 연산은 요청한 항목들을 포함하는 새 리스트를 돌려줍니다.

    • 이는 다음과 같은 슬라이스가 리스트의 새로운 (얕은) 복사본을 돌려준다는 뜻입니다

_list[-3:]    #[3,4,5]
_list[:]      #[1,2,3,4,5]
_list[-3:] + _list[:3] #[1,2,3,4,5]
_list[4::-2]    #[5,3,1]

슬라이스가 동작하는 방식

인덱스가 문자들 사이의 위치를 가리킨다고 생각하는 것입니다.

 +---+---+---+---+---+---+
 | P | y | t | h | o | n |
 +---+---+---+---+---+---+
 0   1   2   3   4   5   6
-6  -5  -4  -3  -2  -1

값 쓰기

  • _list[0] = 10이라고 하면 첫번째 값이 10으로 변경

  • 가변

  • 슬라이스로도 리스트 수정이 가능하다.

_list[1:3] = [77, 88]        #[1,77,88,4,5]
_list[1:3] = [1,77,88,99]    #[1,77,88,99,4,5]

리스트 수정

(가변) 새로운 값 추가하기 append

_list.append(6) 
_list     #[1,2,3,4,5,6]

(불변) 새로운 값 추가하기 +

_list1 = _list + [6]
_list1    # [1,2,3,4,5,6]
_list     # [1,2,3,4,5]

(가변) 값 삭제하기 del remove

  • del 키워드 : 해당 인덱스에 있는 값을 지운다.

    • 인덱스를 찾을 수 없다면 에러

  • remove 내장메서드 : list안에서 해당하는 값을 지운다.

    • 해당 값을 찾을 수 없다면 에러

  • 슬라이싱을 이용해서도 삭제가 가능하다.

    • 인덱스를 찾을 수 없어도 상관없다.

_list = [1,2,3,4,5,6,7,8,9,10]
del _list[5]        # [1,2,3,4,5,7,8,9,10] 
del _list[:5]       # [6,7,8,9,10]
_list.remove(10)    # [1,2,3,4,5,7,8,9] 
_list[2:6] = []     # [1,2,8,9]
_list[1:9] = [4]    # [1,2,4]

리스트에 값이 들어있는지 확인하는 방법

in

n = 12
if n in _list:
    print('{}가 리스트에 있다.'.format(n))
n = 12
if(_list.includes(n)) 
    console.log(`${n}이 리스트에 있다.`)

List의 다양한 기능

  • list.index(value, start?, end?)

    • 리스트에 있는 항목 중 값이 x와 같은 첫 번째 것의 0부터 시작하는 인덱스를 돌려준다.

    • 항목이 없다면 ValueError

    • start, end는 옵션값이다.

    • start와 end는 슬라이스 표기법처럼 해석된다.

  • list.extend([value1, value2])

    • 리스트의 끝에 이터러블의 모든 항목을 덧붙여서 확장한다.

    • a[len(a):] = iterable 과 동등하다.

  • list.insert(index, value)

    • 주어진 위치에 항목을 삽입한다.

    • 첫번째 인자: 삽입되는 요소가 갖게될 인덱스이다.

    • a.insert(len(a), x)a.append(x) 와 동등하다.

  • list.sort(key = None, reverse = False)

    • 리스트의 항목들을 제자리에서 정렬한다.

  • list.reverse()

    • 리스트의 요소들을 제자리에서 뒤집는다.

List와 String

  • 리스트와 문자열은 유사하다.

  • 서로 변환이 가능하다.

  • list = str.split() : 문자열에서 리스트로

    • 자바스크립트와 동일: [김나영].split(' ')

  • 구분자.join(list) : 리스트에서 문자열로

    • 자바스크립트는 정 반대 : [1,2,3].join(' ')

Last updated