01-11)리스트와 딕셔너리

slow_starter·2025년 6월 29일
0

모두의연구소-DS4기

목록 보기
11/30
post-thumbnail

01. 리스트 다루기

  • 기존에 배웠듯이 리스트는 [원소1, 원소2, 원소3..] 같이 정의할 수 있는
    자료 구조로서, 숫자, 문자의 제약을 받지 않음
  • 1차원 리스트 : 자료가 한 줄로 이뤄져 있음
  • 2차원 리스트 : 자료가 행, 열로 구성되어 있고 행, 열 순서로 인덱싱
  • 3차원 리스트 : 자료가 깊이(depth), 행, 열로 구성되어 있고 깊이, 행, 열 순서로 인덱싱
  • 리스트 관련된 함수
    • min() : 리스트 요소 중 최소값 구하는 함수
    • max() : 리스트 요소 중 최대값 구하는 함수
    • sum() : 리스트 요소의 합을 구하는 함수
    • enumerate() : 리스트 원소에 순서값을 부여
    • zip() : 반복 가능한 객체 묶어주는 함수
    • chd() : 아스키코드 -> 문자
    • ord() : 문자 ->아스키코드
  • enumerate() 예시
# enumerate() 함수 예시
student_score = [80,90,70,80]
for i in enumerate(student_score):
    print(i)
# 아래와 같이 출력됨
# (0, 80)
# (1, 90)
# (2, 70)
# (3, 80)
  • zip() 예시
# enumerate() 함수 사용 예시
# enumerate() 함수는 range, 튜플, 문자열에서도 쓰임
dogs = ['슈나우저','코커스파니엘','보더콜리','비글']
 
scores = [7.5, 8.0, 9.2, 6.8]
for k in zip(dogs, scores):
    print(k)
# 아래와 같이 출력됨
# ('슈나우저',7.5)
# ('코커스파니엘',8.0)
# ('보더콜리', 9.2)
# ('비글', 6.8)

02. 딕셔너리 다루기

  • keyvalue 추가할 때 : setdefault(), update()
  • keyvalue 삭제할 때 : pop(), popitem()
    • pop() : 리스트에서 마지막 요소 반환 후 제거
    • popitem() : 딕셔너리에서 (key, value) 쌍을 튜플로 반환하면서 삭제
  • pop() 함수 예시
lst = [10, 20, 30]
x = lst.pop()
print(x)      # 30
print(lst)    # [10, 20]
  • popitem()
d = {'a': 1, 'b': 2, 'c': 3}
k, v = d.popitem()
print(k, v)   # 'c', 3 (Python 3.7+부터는 '마지막' 항목)
print(d)      # {'a': 1, 'b': 2}

03. 컴프리헨션(Comprehension)

  • 대괄호 안에 if문, for문, in의 조건 등을 활용하여 간결하게 표현
  • {}등을 통해, set 컴프리헨션, 딕셔너리 컴프리헨션도 사용 가능
  • 리스트 컴프리헨션 예시(1)
# 예시1) 1부터 5까지 제곱들의 합을 나타내기(for문)
squares = []
for i in range(1,6):
    squares.append()
# 예시1) 1부터 5까지 제곱들 합 나타내기(리스트-컴프리헨션)
```python
squares = [i ** 2 for i in range(1, 6)]
  • 리스트 컴프리헨션 예시(2)
# 예시2) 1~9중 짝수만 필터링(for문)
evens = []
for i in range(10):
    if i%2 == 0:
    evens.append(i)
# 예시2) 1~9중 짝수만 필터링(리스트-컴프리헨션)
evens = [i for i range(10) if i%2==0]
  • 리스트 컴프리헨션 예시(3)
    • 억지스러운 상황이지만 이렇게도 활용 가능함(비추)
# 피보나치 수열 만들기
fib = [0,1] # 피보나치 수열 초기값
for i in range(2,10):
    fib.append(fib[i-1],fib[i-2])
print(fib)  # [0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
# 피보나치 수열 만들기(비추! 그러나 가능은 함)
fib = [0, 1]
[fib.append(fib[i-1] + fib[i-2]) for i in range(2, 10)]
print(fib)
# 리스트 컴프리헨션은 보통 리스트를 생성하는 용도로 사용
# append()처럼 **부수 효과(side effect)**를 위해 쓰는 건 
# **Python 스타일 가이드(PEP8)**에선 권장하지 않음
profile
2025화이팅!

0개의 댓글