본문 바로가기
학부 자료/Python

[Python] 파이썬 기초 3/20, 리스트와 딕셔너리

by jackMK 2023. 11. 7.

<내용정리>

- 관련 파일

3일차_221116.py
0.00MB
python_test_03_리스트와딕셔너리_정답.py
0.00MB

- 본문

##튜플 : 읽기 전용 리스트
t1 = (1, 2, 3)
print('튜플 t1 :', t1)

t2 = 1, 2, 3
print('튜플 t2 :', t2)                                                                                                     

t3 = tuple([100, 3.14, 'hello'])
print('튜플 t3 :', t3)

t4 = (100) #튜플이 아닌 일반 변수로 인식
print('튜플 t4 :', t4) --> 100

t5 = (100,)
print('튜플 t5 :', t5) --> (100,)

#리스트와 튜플의 차이점
-리스트는 [], 튜플은 ()
-리스트는 값을 추가, 수정, 삭제 가능
-튜플은 값을 바꿀 수 없다

#리스트와 튜플의 공통점
-연산 가능(덧셈, 곱셈)
-인덱싱과 슬라이싱 가능 #둘 다 시퀀스 자료형이기 때문
=================================================================
##세트(집합) - 인덱싱, 슬라이싱 불가능
s1 = {1, 2, 3}
print('세트 s1 :', s1)

#값을 1개 추가하기 : add
s1.add(4)
print('세트 s1 :', s1)

#값을 여러개 추가하기 : update
s1.update([5, 6, 7])
print('세트 s1 :', s1)

#특정 값을 제거하기 : remove
s1.remove(3) #값 3을 지워라
print('세트 s1 :', s1)
=================================================================
##딕셔너리
dic = {'name':'홍길동', 'birthday':'1212'}
print('딕셔너리 dic :', dic)

#특정 값을 출력할 때
print(dic['name'])
a = dic['birthday']
print(a)

#딕셔너리 값을 수정할 때
dic['name'] = '라이언'
print('딕셔너리 dic :', dic)

#딕셔너리 쌍을 추가할 때
dic['address'] = '대구' #key는 중복되면 안됨
print('딕셔너리 dic :', dic)

#딕셔너리 쌍을 삭제할 때
del dic['address'] #address에 해당하는 키와 값을 삭제
print('딕셔너리 dic :', dic)

#키와 값을 모두 삭제할 때
dic.clear()
print('딕셔너리 dic :', dic)

#key 리스트 만들기
print(dic.keys()) #key 부분만 따로 모은 것

#value 리스트 만들기
print(dic.values()) #value 부분만 따로 모은 것

#items 함수를 이용해서 쌍을 얻기
print(dic.items()) #쌍이 튜플 형식으로 묶여서 출력됨

##표준출력
#이스케이프 문자
프로그래밍 할 때 사용할 수 있도록 미리 정의해둔 문자 조합
출력물을 보기 좋게 보는 용도로 사용
대표적으로 \n(엔터)

## % 연산자
-%d : 10진수
-%o : 8진수
-%x : 16진수
-%f : 실수(ex.%f, %.1f, %.2f)
-%s : 문자열

weight = 23.55
print('내 몸무게는 %.1fkg입니다.'%weight)

##format() 메소드(함수)
<형식>
'문자열 {}'.format(변수 또는 상수)

zipcode = '09462'
print('우편번호 : {}'.format(zipcode))

address = '''서울특별시 강남구
테헤란로 146'''
print('주소 : {addr}'.format(addr=address))

tel1, tel2, tel3 = '02', '538', '0021'
print('연락처 : {0}-{1}-{2}'.format(tel1, tel2, tel3))

print('{0:<10}'.format('hi')) #전체 10칸 중 왼쪽 정렬
print('{0:>10}'.format('hi')) #전체 10칸 중 오른쪽 정렬
print('{0:^10}'.format('hi')) #전체 10칸 중 가운데 정렬
print('{:=^30}'.format('Python')) #전체 30칸, 공백을 =로 출력, 가운데 정렬
print('{:!<30}'.format('Python')) #전체 30칸, 공백을 !로 출력, 왼쪽 정렬

n = 3.141592
print('{:.3f}'.format(n)) #소수 셋째자리까지 반올림

##f-strings (f 문자열 포맷팅)
<형식>
f'문자열 {변수명} 문자열' #{}안에 변수명이 무조건 들어가야한다

name = '라이언'
age = 20
print(f'나의 이름은 {name}입니다. 나이는 {age}살입니다.')
print(f'나는 내년이면 {age+1}살이 됩니다.')

print(f'{"Python":=^30}') #전체 30칸, 공백을 =로 출력, 가운데 정렬
print(f'{"Python":!<30}') #전체 30칸, 공백을 !로 출력, 왼쪽 정렬

n = 3.141592
print(f'{n:.3f}') #소수 셋째자리까지 반올림

 

- 문제 및 정답

# 리스트와 딕셔너리

'''
[문제] 리스트의 수정, 삭제, 변경

1. 과일이름을 요소로 하는 값이 3개 이상인 리스트 a를 생성하라.

2. 음식이름을 요소로 하는 값이 3개 이상인 리스트 b를 생성하라.

3. 위 두 개의 리스트를 하나로 합친 리스트 c를 생성하라.

4. c에서 마지막 과일을 다른 과일로 대체하라.

5. c에서 마지막 음식을 삭제하라.


[출력결과]

과일 리스트 :  ['사과', '복숭아', '포도']
음식 리스트 :  ['김치', '라면', '피자']
과일과 음식 리스트 :  ['사과', '복숭아', '포도', '김치', '라면', '피자']
과일과 음식 리스트 :  ['사과', '복숭아', '바나나', '김치', '라면', '피자']
과일과 음식 리스트 :  ['사과', '복숭아', '바나나', '김치', '라면']


[정답]

a = ['사과', '복숭아', '포도']
b = ['김치', '라면', '피자']
c = a + b
print('과일 리스트 : ',a)
print('음식 리스트 : ',b)
print('과일과 음식 리스트 : ',c)
c[2] = '바나나'
print('과일과 음식 리스트 : ',c)
del c[5]
print('과일과 음식 리스트 : ',c)

'''





'''
[문제] 딕셔너리 관련 문제

1. {"강감찬":"귀주대첩", "을지문덕":"살수대첩", "세종대왕":"집현전"}라는 딕셔너리를 만들고 여기에 {"서희":"강동6주"}를 추가하여라.

2. 위의 딕셔너리에서 Key가 "세종대왕"인 것의 Value를 "한글"로 수정하여라.

3. "을지문덕"이라는 Key와 Value를 삭제하라.

[출력결과]

현재 딕셔너리는 {'강감찬': '귀주대첩', '을지문덕': '살수대첩', '세종대왕': '집현전'} 입니다.
현재 딕셔너리는 {'강감찬': '귀주대첩', '을지문덕': '살수대첩', '세종대왕': '집현전', '서희': '강동6주'} 입니다.
현재 딕셔너리는 {'강감찬': '귀주대첩', '을지문덕': '살수대첩', '세종대왕': '한글', '서희': '강동6주'} 입니다.
현재 딕셔너리는 {'강감찬': '귀주대첩', '세종대왕': '한글', '서희': '강동6주'} 입니다.


[정답]

history = {'강감찬':'귀주대첩', '을지문덕':'살수대첩', '세종대왕':'집현전'}
print('현재 딕셔너리는', history, '입니다.')
history['서희'] = '강동6주'
print('현재 딕셔너리는', history, '입니다.')
history['세종대왕'] = '한글'
print('현재 딕셔너리는', history, '입니다.')
del history['을지문덕']
print('현재 딕셔너리는', history, '입니다.')

'''


loading