[제로베이스_데이터취업스쿨] 자료구조-List

JuYi Jeong·2024년 2월 25일

자료구조란?

여러개의 데이터가 묶여있는 자료형을 컨테이너 자료형이라고 하고, 이러한 컨테이너 자료형의 데이터 구조를 자료구조라고 한다.
자료구조는 각각의 컨테이너 자료형에 따라서 차이가 있으며, 파이썬의 대표적인 컨테이너 자료형으로는 리스트(List), 튜플(Tuple), 딕셔너리(Dic), 셋트(Set)가있다

list

-배열과 같이 여러개의 데이터를 나열한 자료구조.

-‘[ ]’를 이용해서 선언하고, 데이터 구분은 ‘,’를 이용한다.
이때 숫자, 문자(열), 논리형, 또 다른 컨테이너 자료형까지 모든 기본 데이터를 같이 저장할 수 있다.
ex) datas = [10, 20, 30, [40, 50, 60]]

-인덱스 : 아이템에 자동으로 부여되는 번호표로 가장 앞자리부터 순서대로 0부터 시작하여 부여된다.
이러한 특징을 이용하여 아이템 조회가 가능하다.
ex)print('datas[0]: {}'.format(datas[0])) → datas[0]: 10
print('datas[3]: {}'.format(datas[3])) → datas[3]: [40, 50, 60]

-리스트 길이 : 리스트에 저장된 아이템 개수를 뜻한다.
len()을 이용하면 리스트 길이를 알 수 있다.
datas = [10, 20, 30, [40, 50, 60]]
print(len(datas)) → 4

리스트 아이템 조회
for문과 while문 이용 시 아이템 조회가 가능하다.

  1. for i in range(len(datas)):
    print('i: {}'.format(i))

  2. for data in datas:
    print(data)

  3. n=0
    while n < len(datas):
    print(datas[n])
    n += 1

  4. n=0
    flag=True
    while flag:
    print(cars[0])
    n +=1
    if n == len(datas):
    flag = False

  5. n=0
    while True:
    print(datas[n]):
    n+=1
    if n == len(datas)
    break

enumerate() 함수를 이용하면 아이템을 열거할 수 있다.
for idx, value in enumerate(datas):
print('{}:{}'.format(idx, value))

아이템 추가
-append() 함수를 이용하면 마지막 인덱스에 아이템을 추가할 수 있다
ex)datas.append('')
-insert() 함수를 이용하면 특정 위치(인덱스)에 아이템을 추가할 수 있다
ex)datas.insert(5,'')

아이템 삭제
-pop() 함수를 이용하면 마지막 인덱스에 해당하는 아이템을 삭제할 수 있다.
-pop(n) 함수를 n인덱스에 해당하는 아이템을 삭제할 수 있다.
-remove() 함수를 이용하면 특정 아이템을 삭제할 수 있다. 단 한개의 아이템만 삭제 가능하기 때문에 여러개 삭제할 경우 while문을 이용해야 한다.
-del 키워드를 이용하면 특정 아이템을 삭제할 수 있다.

리스트 정렬
-extend() 함수를 이용하면 리스트에 또 다른 리스트를 연결할 수 있다. (덧셈 연산자를 이요할 수도 있다.)
-sort() 함수를 이용하면 아이템을 정렬할 수 있다.
오름차순:sort(), 내림차순:sort(reverse=True)
-reverse() 함수를 이용하면 아이템의 순서를 뒤집을 수 있다.

리스트 슬라이싱
-[n:m]을 이용하면 리스트에서 원하는 아이템만 뽑아낼 수 있다. 문자열도 가능하다.
ex)[2:4] →인덱스 2<=n<4에 해당하는 아이템을 뽑아낼 수 있다.
-슬라이싱 단계 설정
[n:-z] : index n부터 마지막 z개 제외한 위치까지 슬라이싱
[n:-m:z] : index n부터 마지막 z개 제외한 위치를 m간격으로 슬라이싱
[:-m:z] : 처음부터(index 0) 마지막 z개 제외한 위치를 m간격으로 슬라이싱
[::m] : 전체 리스트를 m간격으로 슬라이싱
-슬라이싱을 이용한 아이템 변경
datas[단계설정] = ['변경내용1','변경내용2','변경내용3']이런식으로 재할당 시 변경 됨

리스트 기타
-리스트를 곱셈 연산하면 아이템이 반복된다.
-index(item)함수로 item의 인덱스를 알아낼 수 있다.
-count() 함수를 이용하면 특정 아이템의 개수를 알아낼 수 있다.

0개의 댓글