A. 딕셔너리

  • 리스트가 '인덱스'를 기반으로 값을 저장하는 것이라면, 
  • 딕셔너리는 '키(Key)'를 기반으로 값을 저장하는 것이다.
  • 대괄호[ ]를 입력하고 내부에 인덱스처럼 키를 입력한다.
  • 참조할 때 리스트와 딕셔너리 차이
리스트 list_a = [] list_a[1]
딕셔너리 dict_a = {} dict_a["key"]
  • 모든 연속형 자료형의 중추는 리스트, 딕셔너리는 편집 가능한 리스트다.

 

in 키워드

딕셔너리 내부에 키가 있는지 없는지 확인한다. 

dictionary = {
    "name": "야채", 
    "age": 24, 
    "character": "활달함", 
    "nation": "한국"
}

#입력
key = input("접근하려는 키: ")

if key in dictionary:
    print(dictionary[key])
else:
    print("존재하지 않는 키에 접근하고 있다.")

접근하려는 키: 야채

>> 존재하지 않는 키에 접근하고 있다.

 

get() 함수

dictionary = {
    "name": "야채", 
    "age": 24, 
    "character": ["활달함", "호기심 많음"],
    "nation": "한국"
}

#입력
value = dictionary.get("name")
print("값:", value)
value2 = dictionary.get("health age")
print("값:", value2)

#None 확인 방법
if value or value2 == None:
    print("존재하지 않는 키에 접근했었습니다.")

값: 야채
값: None
존재하지 않는 키에 접근했었습니다.

 

값 추가 / 제거

  • dictionary['새로운 키"] = 새로운 값
  • del dictionary["이름"]

 

 

 

B. 딕셔너리 실습 오답노트

1. 자릿수를 구하는 방법

numbers = [123, 45, 63, 234, 352,123]

#My Answer
for number in numbers:
    if 100<= number<1000:
        print("{}는 3자릿수입니다.".format(number))
    elif 10<=number< 100:
        print("{}는 2자릿수입니다.".format(number))
    elif 0<number< 10:
        print("{}는 1자릿수입니다.".format(number))
    else:
        pass
        
 #Teacher's
for number in numbers:
    print("{}는 {}자릿수입니다.".format(number, len(str(number))))

 

2. 짝수 번째 요소를 제곱

#My Answer
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9]

for i in range(0, len(numbers) // 2):
#My Answer : j = i+(i+1)
    #Teacher's
    j = i * 2 + 1
    print(f"i = {i}, j={j}")
    numbers[j] = numbers[j] **2
    
print(numbers)

 

 


 

C. 반복문

range() 범위

1. 숫자를 한 개 넣는 방법

  • range(n)
  • 0부터 n-1까지의 정수로 범위

2. 숫자를 두 개 넣는 방법

  • range(n1, n2)
  • n1부터 n2-1까지의 정수로 범위

3. 숫자를 두 개 넣는 방법 

  • range(n1, n2 , n3)
  • n1부터 n2-1까지의 정수로 범위를 만드는데, 간격이 n3
for i in range(4, 0-1, -1): #4부터, 마지막까지, -1에서 증감한 값 0
    print("현재 반복 변수: {}".format(i))

 

reversed() 

  • 함수와 반복문을 조합할 때는 함수의 결과를 여러 번 사용하지 않고 for 구문 내부에 reversed() 함수를 곧바로 넣어서 사용한다.
for i in reversed(range(5)):
    print("현재 반복 변수: {}".format(i))

현재 반복 변수: 4
현재 반복 변수: 3
현재 반복 변수: 2
현재 반복 변수: 1
현재 반복 변수: 0

 

enumerate()

  • 함수와 반복문 조합하기
  • for와 in 사이에 반복 변수를 두개 넣어서
  • index와 value를 각각 가져올 수 있다.
exapme_list = ["요소A", "요소B", "요소C"]

print("# enumerate() 함수 적용")
print(enumerate(exapme_list))
print()

print("# list() 함수로 강제 변환 출력")
print(list(enumerate(exapme_list)))
print()

print("# 반복문과 조합하기")
for i, value in enumerate(exapme_list): #반복설계구문
    print("{}번째 요소는 {}입니다.".format(i, value))

# enumerate() 함수 적용
<enumerate object at 0x000002569F183880>

# list() 함수로 강제 변환 출력
[(0, '요소A'), (1, '요소B'), (2, '요소C')]

# 반복문과 조합하기
0번째 요소는 요소A입니다.
1번째 요소는 요소B입니다.
2번째 요소는 요소C입니다.

 

튜플

  • (0, '요소A') 같은 것들
  • 수정 불가능한 리스트
  • 같은 요소여도 메모리가 적다.

itmes()

example_dictionary = {
    "키A": "값A", 
    "키B": "값B",
    "키C": "값C",
}

print("#딕셔너리의 items() 함수")
print("items():", example_dictionary.items())
print()

print("#딕셔너리의 items() 함수와 반복문 조합하기")

for key, element in example_dictionary.items():
    print("dictionary[{}] = {}".format(key, element))

#딕셔너리의 items() 함수
items(): dict_items([('키A', '값A'), ('키B', '값B'), ('키C', '값C')])

#딕셔너리의 items() 함수와 반복문 조합하기
dictionary[키A] = 값A
dictionary[키B] = 값B
dictionary[키C] = 값C

 

 

리스트 내포

  • 리스트 이름= [표현식 for 반복자 in 반복할 수 있는 것]
  • 리스트 이름 = [ 표현식 for  반복자 in 반복할 수 있는 것 if 조건문]
array = [i * i for i in range(0, 20, 2)]

print(array)

[0, 4, 16, 36, 64, 100, 144, 196, 256, 324]

array = ["사과", "자두", "초콜릿", "바나나", "체리"]
output = [fruit for fruit in array if fruit != "초콜릿"]

print(output)

['사과', '자두', '바나나', '체리']

 

이터레이터

  • 이터러블: 반복할 수 있는 것
  • 이터레이터: next() 함수를 적용해 하나하나 꺼낼 수 있는 요소
  • 필요한 요소만 꺼내 쓰기 때문에 메모리의 효율성을 높인다.
for 반복자 in 반복할 수 있는 것
  • reversed() 함수의 리턴값이 이터레이터
numbers = [1, 2, 3, 4, 5, 6]
r_num = reversed(numbers)

print("reversed_numbers:", r_num)
print(next(r_num))
print(next(r_num))
print(next(r_num))
print(next(r_num))
print(next(r_num))

6
5
4
3
2

 

 

기타

min(): 리스트 내부에서 최솟값을 찾는다.

max(): 리스트 내부에서 최댓값을 찾는다.

sum(): 리스트 내부에서 값을 모두 더한다.

'Python' 카테고리의 다른 글

Day6. 객체지향 프로그래밍  (0) 2024.01.16
Day5. 함수  (1) 2024.01.08
Day3. 조건문과 리스트  (2) 2024.01.04
Day2. 변수와 함수, 연산자  (1) 2024.01.03
Day1. 자료형  (1) 2024.01.02