데이터분석

[23.06.01] Python list, for, tuple, dict, if - 02(3)

gmwoo 2023. 6. 1. 15:38

 

2023.06.01 - [데이터분석] - [23.06.01] Python list, for, tuple, dict, if - 02(2) 

이어서 포스팅

1. dict (dictionary, 딕셔너리)

 - dict 타입은 키와 값 쌍으로 데이터를 저장하는 타입

 - 해쉬테이블, 딕셔너리 라고 함

 - 키와 값 자체는 어떤 타입이든 상관없는데 보통 키의 경우에는 문자열을 많이 사용

예제 1) dictionary

colors = {"red": "빨간색", "blue": "파란색", "green": "초록색", 
          "black": "검정색"}
print(colors['red']) # red, blue, black 값 등을 key. key를 통해 데이터 접근
print(colors['blue']) # 인덱싱, 슬라이싱 적용안됨
print(colors['green'])
print(colors['black']) 

# dict 타입은 추가 키 값이 이미 존재했다면 수정, 값 바꿔치기, 없었으면 추가
colors['pink'] = "분홍색" # 추가
colors['black'] = "검은색"
print(colors)

# 삭제
del colors['red']
print(colors)

# 키 값 목록만 - 키 값 순서는 내부적으로 알아서, 입력한 순서대로 나오지 않음
for key in colors:
    print(key, colors[key])

 

2. dictionary와 list 사용

예제 1) dict, list 함께 사용

# list 안에 dict 타입을 둔다 - 주급
# 데이터가 하나도 없는 list를 만들자  -> payList=[]  payList=()

payList = [
    {"name": "홍길동", "work_time": 40, "per_pay": 30000},
    {"name": "임꺽정", "work_time": 30, "per_pay": 20000},
    {"name": "장길산", "work_time": 50, "per_pay": 40000},
    {"name": "홍경래", "work_time": 20, "per_pay": 10000},
    {"name": "이장욱", "work_time": 10, "per_pay": 30000},
]

print(payList[0]["name"])
print(payList[1]["name"])
print(payList[2]["name"])

print(payList[0]["work_time"])
print(payList[1]["work_time"])
print(payList[2]["work_time"])

for pay in payList:
    print(pay["name"], pay["work_time"], pay["per_pay"])
    
# 급여 구하기
for pay in payList:
    pay["pay"] = pay["work_time"], pay["per_pay"] 

# 다시 출력
print("다시 출력")
for pay in payList:
    print(pay["name"], pay["work_time"], pay["per_pay"], pay["pay"])

d

3. for 와 list 사용

예제 1) for, list 함께 사용

# 정수 5개만 입력받기

numList = []
for i in range(1, 6): # range - 숫자를 연속적으로 생성. (1, 2, 3, 4, 5, 6)까지 생성
    num = int(input("숫자: "))
    numList.append(num)
    
print(numList)

 

4. 문제

# 문제 1. 3의 배수를 10개만 한줄로 출력
for i in range(1, 11):
    print(i*3, end = ' ')
print()
# print([i for i in range(3, 31, 3)], end = ' ')  # 한 줄
print()

# 문제 2. 100, 90, 80, 70, ..., 10 까지 한줄로 출력
lst_2 = [i for i in range(10, 101, 10)]
print(lst_2[::-1], end = ' ')
print()

# 문제 3. 다음 리스트에서 홀수번째 방 데이터만 출력. 1, 3, 5, 7, 9, ...
colors = ["red", "green", "blue", "cyan", "magenta", "black", "brown", "yellow", "green"]
print(colors[1::2])

# 문제 4. 구구단 4단 출력
print([i for i in range(4, 40, 4)], end = ' ')
print()

# 문제 5. 정수를 1~100까지 출력하는데, 10개 마다 줄바꿈 할 것. 힌트) if문 사용
lst_5 = [i for i in range(1, 101)]
for i in lst_5:
    if i % 10 == 0:
        print(i, end = ' ')
        print()
    else: print(i, end = ' ')
    
# 문제 6. 1~100까지 중에 홀수 합계
sum = 0
for i in range(1, 101, 2):
    sum = sum + i
print(sum)

# 문제 7. 1~100까지 중에 7의 배수의 개수
lst_7 = []
for i in range(1,101):
    if i%7==0:
        lst_7.append(i)
print(len(lst_7))
# print(len([i for i in range(1,101) if i % 7 == 0])) # 한 줄

 

반응형