[python] 자료형
파이썬 자료형
리스트 (list)
contact_list = []
contact_list.append(contact) # 추가
for contact in contact_list:
contact.print_info()
for i, contact in enumerate(contact_list):
if contact.name == name:
del contact_list[i] # 삭제
>>> a = [1, 2, 3]
print(a[0]) // 1
print(a[-1]) // 3
>>> a = [1, 2, 3, ['a', 'b', 'c']]
print(a[-1][0])a
>>> a = [1, 2, 3, 4, 5]
print(a[:2])[1, 2]0번째 부터 2개라는 의미
print(a[2:])[3, 4, 5]
slicing
기본형태
list[start: end: step]
인덱스 값들의 위치
list = ['a', 'b', 'c', 'd', 'e']
// Index References
-------------------------------
| a | b | c | d | e |
-------------------------------
| 0 | 1 | 2 | 3 | 4 | // 양수의 경우
-------------------------------
| -5 | -4 | -3 | -2 | -1 | // 음수의 경우
-------------------------------
list = ['a', 'b', 'c', 'd', 'e']
# list[start:] : start index로 부터 끝까지
list[1:] # 결과 : ['b', 'c', 'd', 'e']
list[-3:] # 결과 : ['c', 'd', 'e']
# list[:end ] : 처음부터 end index 앞까지
list[: 2] # 결과 : ['a', 'b']
list[: -1] # 결과 : ['a', 'b', 'c', 'd']
# list[start : end] : start index로 부터 end index 앞까지
list[2 : 4] # 결과 : ['c', 'd']
list[-4 : -2] # 결과 : ['b', 'c']
# list[start : end : step]
- step이 양수일 때: 오른쪽으로 step만큼 이동하면서 가져옵니다.
- step이 음수일 때: 왼쪽으로 step만큼 이동하면서 가져옵니다.
list[ 3 : 0 : -1] # 결과 : ['d', 'c', 'b']
list[ : : 2 ] # 결과 : ['a', 'c', 'e'] # 2칸씩 이동하면서 가져옵니다.
list[ -5 : : 3 ] # 결과 : ['a', 'd'] # 3칸씩 이동하면서 가져옵니다.
list[ : : -1 ] # 결과 : ['e', 'd', 'c', 'b', 'a'] # 전체를 거꾸로 가져옵니다.
list[ 3 : : -1 ] # 결과 : ['d', 'c', 'b', 'a']
append
요소 추가시 뒤쪽으로 들어간다.
items = []
items.append(4) // 4라 는 숫자를 추가
리스트 삭제
- del a[1]1번째 요소삭제 (index로 삭제)
- a.remove(3)3이라는 숫자를 삭제 (단 여러개가 있을 경우 첫번째로 나오는 3이라는 숫자를 제거)
리스트에 요소 삽입(insert)
a.insert(0, 4)0번째에 4라는 숫자를 추가
리스트 정렬(sort)
a.sort 시 a 값 자체가 변경되고 리턴값은 없습니다.
a.sort() # 오름차순
a.sort(reverse=True) # 내림차순
만약 원본을 유지하려면
import copy
dup = copy.deepcopy(a)
리스트 크기(len)
len(a)
위치 반환(index)
a.index(3)3의 인덱스 값을 반환
리스트 요소 끄집어내기(pop)
a.pop()맨뒤의 값을 끄집어내기 (기존에서는 삭제)
리스트에 포함된 요소 x의 개수 세기(count)
a.count(1)숫자 1의 갯수 구하기
리스트 확장(extend)
a.extend([4,5])기존 리스트의 뒤에 추가 a.extend([4, 5])는 a += [4, 5]와 동일하다.
연산
values = [1] * 10 # [1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
values = list(range(0, 10)) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
values = [i**2 for i in range(1, 11)] # [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
듀플(tuple)
튜플(tuple)은 몇 가지 점을 제외하곤 리스트와 거의 비슷하며 리스트와 다른 점은 다음과 같다.
리스트는 [ ]으로 둘러싸지만 튜플은 ( )으로 둘러싼다.
리스트는 그 값의 생성, 삭제, 수정이 가능하지만 튜플은 그 값을 바꿀 수 없다.
('Samsung', 'LG', 'SK')
딕셔너리(dictionary)
{'Daum KAKAO': 80000, 'daeshin': 30000}
LANGUAGES = {
'af': 'afrikaans',
'sq': 'albanian',
'am': 'amharic'
}
for key in LANGUAGES.keys():
print(key, ":", LANGUAGES[key])
딕셔너리에 값 추가하기
1. The Assignment Operator
dictionary_name[key] = value
2. update()
dictionary_name.update({key:value})
3. setitem
dictionary_name.__setitem__(key,value)
4. ** Operator
new_dictionary = {**old_dicitonary, **{key:value}}
5. zip
my_keys = ["three", "four"]
my_values = [3, 4]
for key,value in zip(my_keys, my_values):
my_dictionary[key] = value
값이 있는지 확인하기
if key not in dictionary_name:
dictionary_name[key] = value
for 문을 이용한 데이타 분리하기
for key, value in item.items():
print('key: ', key, 'value: ', value)