Python : 자료형 - 리스트[ ], 딕셔너리{ }, 튜플( )
리스트 : 순서로 나열한 구조의 자료형
리스트 작성은 [ ] 대괄호를 사용하여 감싸고 그 안의 변수들은 , 쉼표를 이용하여 구분
리스트 안에는 문자열, 숫자, T/F 등 변수로 선언되는 것들은 모두 입력 가능
리스트 안의 요소들은 첫 번째 요소부터 0,1,2,3 순으로 순서가 매겨집니다.
-를 추가할 경우 맨 뒤의 요소부터 1,2,3 순으로 순서가 매겨집니다.
리스트 안에 리스트를 추가로 생성 가능 - 하나의 인덱스로 취급
a_list = ['사진', '집', [3, 4], True]
print(a_list)
print(a_list[0])
print(a_list[2])
print(a_list[-1])
['사진', '집', [3, 4], True] # 인덱스를 설정하지 않으면 a_list 모두 출력
사진 # 인덱스 0 출력
[3, 4] # 인덱스 2 출력
True # 인덱스 -1 출력
리스트의 요소 추가 : append(), extend()
※ append( ), extend()는 반환 값이 없습니다.
그러므로 위의 함수와 동시에 다른 변수에 대입하거나 print문과 동시에 사용하면 None이 출력됩니다.
a_list = ['사진', '집', 3, True]
a_list.append(99)
print(a_list)
a_list.extend([5, 6, '국수'])
print(a_list)
['사진', '집', 3, True, 99]
['사진', '집', 3, True, 99, 5, 6, '국수']
리스트 요소 제거 : del list[인덱스], list.pop(인덱스)
※ pop()은 인덱스를 적지 않을 경우 맨 마지막 요소가 제거됩니다.
print와 실행할 경우 삭제하는 항목을 출력해줍니다.
a_list = ['사진', '집', [3, True], 5, [6, '국수']]
del a_list[2] # 2번 인덱스 제거
print(a_list)
print(a_list.pop(1)) # ['사진', '집', 5, [6, '국수']]의 1번 인덱스 제거 + 출력
print(a_list)
a_list.pop() # ['사진', 5, [6, '국수']]의 마지막 인덱스 제거
print(a_list)
['사진', '집', 5, [6, '국수']]
집
['사진', 5, [6, '국수']]
['사진', 5]
리스트 길이 출력(인덱스 갯수) : len( )
a_list = ['사진', '집', [3, True],5,[6, '국수']]
print(len(a_list)) # a_list의 요소 개수
print(len(a_list[2])) # 2번 인덱스[3,True] 의 요소 개수
5
2
리스트 오름차순, 내림차순 : sort( )
※ sort()는 반환값이 없습니다.
그러므로 sort와 동시에 다른 변수에 대입하거나 print문과 동시에 사용하면 None이 출력됩니다.
asc = b_list.sort()
print(b_list.sort())
b_list = [1, 3, 2, 6, 7, 4, 8, 5]
b_list.sort() # 오름차순
print(b_list)
b_list.sort(reverse=True) # 내림차순
print(b_list)
[1, 2, 3, 4, 5, 6, 7, 8]
[8, 7, 6, 5, 4, 3, 2, 1]
리스트에 값 있는지 확인하기 : ' ' in list
b_list = [1, 3, 2, 6, 7, 4, 8, 5]
result = 10 in b_list
print(5 in b_list)
print(result)
True
False
딕셔너리 : 순서대로 나열한 시퀀스형(리스트, 튜플)이 아닌 key-value(키-값) 쌍으로 이루어진 자료형
a_dict = {'name': 'John', 'age': 27, 'friend': ['짱구', 'BOB'], 'weight': 80}
a_dict['weight'] = 70 # weight 값 변경
a_dict['height'] = 180 # 'height' : 180 추가
result = a_dict['name'] # name의 value 반환
print(a_dict)
print(result)
print('height' in a_dict) # Value만 탐색 가능
print('John' in a_dict) # 실행하면 False가 나옵니다.(Key 값은 탐색 X)
print(a_dict['friend'][1])
{'name': 'John', 'age': 27, 'friend': ['짱구', 'BOB'], 'weight': 70, 'height': 180}
John
True
False
BOB
딕셔너리 값 제거 : del dic[key], pop(key)
a_dict = {'name': 'John', 'age': 27, 'friend': ['짱구', 'BOB'], 'weight': 80}
del a_dict['age']
print(a_dict)
a_dict.pop('name')
print(a_dict)
{'name': 'John', 'friend': ['짱구', 'BOB'], 'weight': 80} # age 제거
{'friend': ['짱구', 'BOB'], 'weight': 80} # name 제거
리스트 + 딕셔너리
people = [
{'name': 'Bora', 'age': 20, 'score': {'Korean': 90, 'English': 70}}, # 인덱스[0]
{'name': 'King', 'age': 25, 'score': {'Korean': 40, 'English': 72}}, # 인덱스[1]
{'name': 'Nana', 'age': 23, 'score': {'Korean': 80, 'English': 90}}, # 인덱스[2]
{'name': 'Filips', 'age': 26, 'score': {'Korean': 75, 'English': 100}} #[인덱스3]
]
print(people[3])
print(people[2]['score'])
print(people[1]['score']['English'])
{'name': 'Filips', 'age': 26, 'score': {'Korean': 75, 'English': 100}}
{'Korean': 80, 'English': 90}
90
튜플 : 리스트와 비슷한 자료형(불변)
a = ('Korea', 123, 'China',(4,5,6))
print(a[0])
print(a[3])
print(a[3][1])
Korea
(4, 5, 6)
5
튜플을 변수에 할당하기(리스트도 가능)
※ 튜플, 리스트 안 요소들 개수와 입력받는 변수의 개수 일치
a = (1, 2, 3)
x, y, z = a
print(x)
print(y)
print(z)