[python] 자료형

[python] 자료형 updated_at: 2024-01-17 11:34

파이썬 자료형

리스트 (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)
평점을 남겨주세요
평점 : 5.0
총 투표수 : 1

질문 및 답글