리스트
리스트는 순서가 있는 다른 자료형들의 모임입니다.
숫자 뿐 아니라, 문자열 혹은 복합적인 리스트도 사용할 수 있습니다.
공간을 하나 설정하고 그 안에서 순서대로 방을 나눠 그 안에 각각의 값을 담는다고 생각할 수 있습니다.
- 다양한 형태의 리스트
a = [1, 5, 2]
b = [3, "a", 6, 1]
c = []
d = list()
e = [1, 2, 4, [2, 3, 4]]
- Len()함수를 이용해 리스트의 길이를 잴 수 있다.
a = [1, 5, 2, 3, 7]
print(len(a)) # 5
b = [1, 2, 4, [2, 3, 4]]
print(len(b)) # 4
- 순서가 있기에 문자열에서 처럼 인덱싱과 슬라이싱을 할 수 있다.
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
리스트의 다른 기능들
- 덧붙이기 ( 값 추가 )
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]
a += [3]
print(a) # [1, 2, 3, 5, [1, 2], 2, 7, 3]
#.append()는 리스트에 1개의 값으로 데이터를 추가함
- 정렬 (오름차순, 내림차순)
a = [2, 5, 3]
a.sort()
print(a) # [2, 3, 5]
a.sort(reverse=True)
print(a) # [5, 3, 2]
- 특정 요소가 리스트 안에 있는지 알아보기
a = [2, 1, 4, "2", 6]
print(1 in a) # True
print("1" in a) # False
print(0 not in a) # True
딕셔너리 (dictionary)
딕셔너리는 키(key)와 값(value)의 쌍으로 이루어진 자료의 모임입니다. 사전에서 단어를 검색하면 그 뜻이 쌍으로 묶여 있는 것과 같습니다.
- 예시
person = {"name":"yukihira", "age": 17}
print(person["name"])
- 딕셔너리를 만드는 여러 방법
a = {"one":1, "two":2}
# 빈 딕셔너리 만들기
a = {}
a = dict()
- 딕셔너리는 요소에 순서가 정해져 있지 않기 때문에 인덱싱을 할 수 없다.
person = {"name":"yukihira", "age": 17}
print(person[0]) # 0이라는 key가 없으므로 KeyError 발생!
- 딕셔너리의 값을 업데이트 혹은 새로운 쌍의 자료를 넣을 수 있다.
person = {"name":"yukihira", "age": 17}
person["name"] = "ogura"
print(person) # {'name': 'ogura', 'age': 17}
person["tall"] = 171.4
print(person) # {'name': 'ogura', 'age': 17, 'tall': 171.4}
- 아무 자료형이든 딕셔너리의 값으로 사용할 수 있다. 딕셔너리 안에 딕셔너리를 넣을 수도 있다.
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":"yukihira", "age": 17}
print("name" in person) # True
print("email" in person) # False
print("phone" not in person) # True
리스트와 딕셔너리의 조합
딕셔너리는 리스트와 함께 쓰여 자료를 정리하는데 쓰일 수 있다.
people = [{'name': 'yukihira', 'age': 17}, {'name': 'ogura', 'age': 38}]
# people[0]['name']의 값은? 'yukihira'
# people[1]['name']의 값은? 'ogura'
person = {'name': 'alex', 'age': 7}
people.append(person)
# people의 값은? [{'name':'yukihira','age':17}, {'name':'ogura','age':38}, {'name':'alex','age':7}]
# people[2]['name']의 값은? 'alex'
hero = [
{'name':'Aragorn', 'race':'Dunedain', 'wapon':'Anduril'},
{'name':'Legolas', 'race':'Quendi', 'wapon':'Lorien Longbow'}
]
리스트와 딕셔너리를 살펴보다 보니 세이브 슬롯과 캐릭터 스텟페이지가 생각나는건 좀 병적인 게임 쳐돌이일지도 ?
'Language > Python' 카테고리의 다른 글
<파이썬 기본 문법> -6- f-string (0) | 2023.03.02 |
---|---|
<파이썬 기본 문법> -5- 튜플과 집합 (0) | 2023.02.28 |
<파이썬 기본 문법> -4- 함수 (0) | 2023.02.26 |
<파이썬 기본 문법> -3- 조건문, 반복문 (0) | 2023.02.26 |
<파이썬 기본 문법> -1- 변수, 자료형 (0) | 2023.02.23 |