본문 바로가기

Python

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)

 

'Python' 카테고리의 다른 글

Python : 표준 출력(print, fprint)  (0) 2021.08.17