파이썬 자료구조

조지원·2023년 5월 28일
0

python

목록 보기
12/15
post-thumbnail

💻 keep going

내가 보기 편하게 정리를 하다 보니 자료 사진이 많아짐..


💡 자료구조

  • List : for문과 가장 자주 쓰인다

  • Tuple : 한 번 정해진 데이터는 변경할 수 없다.

  • Dic : 키값, 밸류값으로 이뤄져있다.

  • Set : 중복된 데이터는 하나의 데이터만 나온다.



💡 List



💡 index

간단히 말해서 번호표다.

무조건 0 부터 시작 (딕셔너리에는 존재하지 않음)



💡 len()

  • len()함수는 리스트의 개수뿐만 아니라 문자열의 길이도 알 수 있다.



💡 List와 for문



💡 List와 while문

scores = [85, 92, 78, 90, 88]

 
n = 0

while n <= len(scores):
    
    print(scores[n])
    
    n += 1

scores 목록은 5개 요소가 있지만 n은 0부터 시작하여 목록의 길이까지 증가하므로 n <= len(scores)는 항상 참.

따라서 조건은 항상 충족되며 루프는 목록의 요소를 한 번도 반복하지 않고 계속 실행된다.

이 문제를 해결하려면 n < len(scores)를 사용하면 된다. 이러면 n이 목록의 길이보다 작을 때만 루프가 실행.



💡 enumerate()

"인덱스와 값의 쌍"을 순차적으로 반환해준다.



💡append()

마지막 인덱스에 아이템을 추가



💡 insert()

insert(인덱스위치, 원하는 아이템)



💡 pop()

pop(n) : n인덱스에 해당하는 아이템을 삭제



💡 remove()

특정 아이템을 삭제

  • 삭제하려는 데이터가 2개 이상이라면 while문을 이용

while "강호동" in students:  

# students 안에 "강호동"이 있다면 True 없다면 False 

    students.remove("강호동")



💡 extend()

리스트에 또 다른 리스트를 연결(확장)할 수있다.

ex)

group1.extend(group2) : group1에 group2 리스트를 추가



💡 sort()

sort(reverse=False) : 오름차순으로 정렬 reverse=False는 생략가능

sort(reverse=True) : 내림차순으로 정렬



💡 reverse()

아이템의 순서를 뒤집을 수 있다.



💡 [n:m]

리스트에서 원하는 아이템만 뽑아낼 수 있다.

ex)

[2:4] : 2 <= n < 4   
[:4]   : 0 <= n < 4
[2:]  : 2 <= n < 끝까지	
[::2] : 처음부터 끝까지 step2 간격으로



💡 slice()

아이템 슬라이싱

slice(2,4) : 2 <= n < 4
slice(4)   : 0 <= n < 4



💡 List 나머지 기능들

  • 1. 리스트 곱셈 연산

리스트를 곱셈 연산하면 아이템이 반복된다.

  • 2. 아이템 위치 찾기

index(item) (메서드 함수) : item의 인덱스를 알아냄

ex) 

searchIdx = students.index("강호동", 2, 6)

인덱스 2 <= n < 6 안에 있는 "강호동" 찾기

  • 3. count()

특정 아이템의 개수를 알아낼 수 있다.

  • 4. del

특정 아이템을 삭제 할 수 있다.

ex) 

del students[1] -> 인덱스1 값 삭제



💡 Tuple

  • 튜플은 선언 시 괄호 생략 가능 -> abc = "a" , "b", "c"

  • 아이템 변경이 불가하다.

  • 리스트와 튜플은 자료형 변환이 가능하다.

tuple()

ex) students = tuple(students)

list()

ex students = list(students)


💡 in, not in

  • in : 컨테이너 자료형에 특정한 아이템이 있으면 True 없으면 False

  • not in : 있으면 False 없으면 True


💡 Tuple 결합, 슬라이싱

튜플은 슬라이싱을 이용해서 아이템을 변경할 수 없다.

  • slice()함수 사용가능



💡 List 와 Tuple 차이점



💡 Tuple 아이템 정렬

  • 튜플은 수정이 불가하기 때문에 리스트로 변환 후 정렬

  • sorted() (내장함수) : 튜플도 정렬할 수 있다. 하지만 결과는 리스트로 나온다.

    ex) a = sorted(students)



💡 Tuple과 for문



💡 Tuple과 while문



💡 Dictionary

  • 키(key)와 값(value)를 이용해서 자료를 관리

    키(key)는 중복되면 안되고 값(value)는 중복되어도 상관없음

  • "{}"을 이용해서 선언하고, "키:값"의 형태로 아이템을 정의한다

  • 키(key)에는 변경이 불가능한 데이터만 올 수 있다.

    ex) Tuple값(value)에는 다 가능


💡 딕셔너리 조회

  • 키(key)를 이용해서 값(value)을 조회한다.

    ex ) 딕셔너리 명시[키값]


💡 get()

  • get(key)를 이용해서 값(value)을 조회 할 수 있다.

    : key값이 없어도 에러가 발생하지 않는다.


💡 딕셔너리 추가

  • "딕셔너리이름[키(key)] = 값(value)" 형태로 아이템을 추가, 수정 한다

    ex) myInfo["이름"] = "조지원"

  • 추가 하려는키가 이미 있다면 기존 값이 변경된다.


💡 딕셔너리 수정


💡 key()와 values()

(메서드 함수)

  • keys() : 전체 키(key)를 조회

  • values() : 전체 값(value)를 조회

  • items() : 전체 키와 밸류를 합쳐 조회 후에 list()를 이용하여 값들을 리스트로 변환


💡 딕셔너리 삭제

  • del 과 key를 이용한 item 삭제

    ex) del memInfo["메일"] : memInfo 안에 있는 "메일" item(키, 벨류값) 삭제

  • pop() 와 key를 이용한 item 삭제

    결과로 벨류값이 반환된다.


💡 딕셔너리 유용한 기능

len(), in, not in, clear()



profile
keep going

0개의 댓글