python 파트4. 리스트와 딕셔너리

reggias·2022년 11월 21일
0

python

목록 보기
4/14

리스트와 딕셔너리

공통점

  • 값을 담는 방법에 대한 자료형

차이점

  • 리스트(list) : 순서로 이루어진 자료의 모임
  • 딕셔너리(dictionary) : key:value 의 쌍으로 이루어진 자료의 모임

리스트

리스트 기초

  • 순서가 있는, 다른 자료형들의 모임
a = [1, 5, 2]
b = [3, "a", 6, 1, false]
c = []
d = list()
e = [1, 2, 4, [2, 3, 4]]
  • 리스트의 길이(요소의 개수) 구하기 : len()
a = [1, 5, 2]
print(len(a))   # 3

b = [1, 3, [2, 0], 1]
print(len(b))   # 4
  • 리스트의 특정 요소의 개수 구하기 : .count()
cook = ["피자", "김밥", "만두", "양념치킨", "족발", "피자", "김치만두", "쫄면", "소시지", "라면", "팥빙수", "김치전"]
count_cook = cook.count("피자")
print(count_cook)
  • 순서가 존재하므로 인덱싱, 슬라이싱 가능
a = [1, 3, 2, 4]
print(a[3])  # 4
print(a[1:3]) # [3, 2]
print(a[-1]) # 4
  • 리스트의 요소가 리스트라면 중첩으로
a = [1, 2, [2, 3], 0]
print(a[2])      # [2, 3]
print(a[2][0])   # 2

리스트 심화

  • 덧붙이기 : .append() 메소드
a = [1, 2, 3]
a.append(5)
print(a)     # [1, 2, 3, 5]

a.append([1, 2])
print(a)     # [1, 2, 3, 5, [1, 2]]


# 더하기 연산과 비교!
a += [2, 7]
print(a)     # [1, 2, 3, 5, [1, 2], 2, 7]
  • 원소 추가 : .insert(입력해줄index, 값)
movie_rank = ['닥터 스트레인지', '스플릿', '럭키', '배트맨']
movie_rank.insert(1, "슈퍼맨")
print(movie_rank)
# ['닥터 스트레인지', '슈퍼맨', '스플릿', '럭키', '배트맨']
  • 원소 삭제
  1. del 키워드
movie_rank = ['닥터 스트레인지', '슈퍼맨', '스플릿', '럭키', '배트맨']
del movie_rank[3]
print(movie_rank)
# ['닥터 스트레인지', '슈퍼맨', '스플릿', '럭키', '배트맨']
  1. list의 .remove() 메소드
movie_rank = ['닥터 스트레인지', '슈퍼맨', '스플릿', '럭키', '배트맨']
movie_rank.remove('럭키')
print(movie_rank)
# ['닥터 스트레인지', '슈퍼맨', '스플릿', '럭키', '배트맨']
  • 정렬하기 : .sort() 메소드
a = [2, 5, 3]
a.sort()
print(a)   # [2, 3, 5]
a.sort(reverse=True)
print(a)   # [5, 3, 2]
  • 리스트 안에 원하는 요소가 있는지 확인하는 법(in)
a = [2, 1, 4, "2", 6]
print(1 in a)      # True
print("1" in a)    # False
print(0 not in a)  # True
  • 리스트를 문자열로 바꾸기 : .join() 메소드
  • 구분자.join(list)
interest = ['삼성전자', 'LG전자', 'Naver', 'SK하이닉스', '미래에셋대우']
text = " ".join(interest)
print(text) # 삼성전자 LG전자 Naver SK하이닉스 미래에셋대우

딕셔너리

딕셔너리 기초

  • 키(key)와 밸류(value)의 쌍으로 이루어진 자료형
    ex) 영한사전에서 영단어 검색하면 한국어 뜻이 나오는 것처럼 쌍으로 이루어짐
person = {"name":"Bob", "age": 21}
print(person["name"])
  • 딕셔너리 만드는 법
a = {"one":1, "two":2}

a = {}
a = dict()   # 빈 딕셔너리 만들기
  • 요소의 순서가 없어 인덱싱 불가
person = {"name":"Bob", "age": 21}
print(person[0])   # 0이라는 key가 없으므로 KeyError 발생!
  • 딕셔너리의 값을 업데이트하거나 새로운 쌍의 자료를 넣기
person = {"name":"Bob", "age": 21}

person["name"] = "Robert"  # 업데이트
print(person)  # {'name': 'Robert', 'age': 21}

person["height"] = 174.8  # 추가
print(person)  # {'name': 'Robert', 'age': 21, 'height': 174.8}

del person["name"]  # 삭제
print(person)  # {'age': 21, 'height': 174.8}
  • 딕셔너리의 밸류는 아무 자료형도 가능
person = {"name":"Alice", "age": 16, "scores": {"math": 81, "science": 92, "Korean": 84}}
print(person["scores"])             # {'math': 81, 'science': 92, 'Korean': 84}
print(person["scores"]["science"])  # 92

딕셔너리 심화

  • 딕셔너리 안에 해당 키가 존재하는지 확인하는 법(in)
person = {"name":"Bob", "age": 21}

print("name" in person)       # True
print("email" in person)      # False
print("phone" not in person)  # True

리스트와 딕셔너리의 조합

people = [{'name': 'bob', 'age': 20}, {'name': 'carry', 'age': 38}]

# people[0]['name']의 값은? 'bob'
# people[1]['name']의 값은? 'carry'

person = {'name': 'john', 'age': 7}
people.append(person)

# people의 값은? [{'name':'bob','age':20}, {'name':'carry','age':38}, {'name':'john','age':7}]
# people[2]['name']의 값은? 'john'

딕셔너리 메소드

  • key 값으로만 구성된 리스트 생성하기 : .keys() 메소드
icecream = {
    '탱크보이': 1200,
    '폴라포': 1200,
    '빵빠레': 1800,
    '월드콘': 1500,
    '메로나': 1000
}
list = list(icecream.keys())
print(list)  # ['탱크보이', '폴라포', '빵빠레', '월드콘', '메로나']
  • value 값으로만 구성된 리스트 생성하기 : .values() 메소드
icecream = {
    '탱크보이': 1200,
    '폴라포': 1200,
    '빵빠레': 1800,
    '월드콘': 1500,
    '메로나': 1000
}
value_icecream = icecream.values()
print(list(value_icecream))
  • 딕셔너리 + 딕셔너리 합치기 : .update() 메소드
icecream = {'탱크보이': 1200, '폴라포': 1200, '빵빠레': 1800, '월드콘': 1500, '메로나': 1000}
new_product = {'팥빙수':2700, '아맛나':1000}
icecream.update(new_product)
print(icecream)  # {'탱크보이': 1200, '폴라포': 1200, '빵빠레': 1800,
                 # '월드콘': 1500, '메로나': 1000, '팥빙수': 2700, '아맛나': 1000}
  • 두 개의 튜플 또는 리스트를 하나의 딕셔너리로 합치기 : zip(key, value), dict((key1,value1), (key2, value2))
keys = ("apple", "pear", "peach")
vals = (300, 250, 400)
fruits = dict(zip(keys, vals))

print(fruits)  # {'apple': 300, 'pear': 250, 'peach': 400}
profile
sparkle

0개의 댓글