Python 기초 - 리스트[], 튜플(), 딕셔너리{}

박세우·2024년 1월 21일

리스트란?

  • 요소들의 모음을 나타내는 자료형
  • 요소들을 대괄호([])로 감싸주어 만들 수 있습니다.
  • 모든 자료형을 리스트의 요소로 담을 수 있습니다.

리스트 함수

len: 리스트의 길이를 구함.

a = [1,2,3,4,5]
len(a)
깂 = 5

sum, min, max: 리스트 요소들의 합, 최솟값, 최댓값을 구함.

sum(a)/len(a)
값 = 3.0

in: 특정 요소가 리스트 안에 있는지 확인

a = ['a','b','c','d','e']
'a' in a
값 = True

append: 리스트의 맨 마지막에 요소를 추가

a = [1,2,3]
a.append(4)
print(a) #[1,2,3,4]

extend: 리스트의 맨 마지막에 다른 리스트를 추가

a = [1,2,3]
a.extend([4,5])
print(a) #[1, 2, 3, 4, 5]

insert: 리스트의 특정 위치에 특정 요소를 삽입

a = [1,2,3,4]
a.insert(3,2) #4 번째 자리에 '2' 추가 -> 
print(a) # [1,2,3,2,4]

remove, pop: 리스트의 요소를 삭제

#remove: 특정 요소를 제거
a = [1,2,3,4]
print(a)
a.remove(4) #'4'제거
print(a) #[1,2,3]

#pop: 특정 위치의 요소를 제거하여 그 요소를 반환
a.pop(2) #3 번째 위치인 3을 반환
print(a) # [1.2]

count: 리스트의 특정 요소의 개수를 반환

a = [1,1,2,3]
a.count(1) #'1'이 리스트안에 2개 있음 -> 값 = 2

index: 리스트에 요소가 있는 경우 인덱스 값을 반환

a = ['a','b',1,2]
a.index(1) #2

sort, sorted, reverse: 리스트를 정렬

#sort: 정렬된 리스트를 변환
a = [1,20,23,2]
a.sort()
print(a) #[1,2,20,23[]

#sorted: 정렬된 리스트를 출력만 함 (리스트 자체 변경x)
a = [1,20,23,2]
sorted(a) #[1,2,20,23]

print(a) #리스트 변경 x -> [1,20,23,2]

#내림차순으로 바꾸고 싶은 경우
a = [1,20,23,2]
sorted(a, reverse=True) #[23, 20, 2, 1]

#오름차순으로 바꾸고 싶은 경우
a = [1,20,23,2]
sorted(a, reverse=False) #[1, 2, 20, 23]

join: 리스트의 요소들을 하나의 문자열로 함침 (문자일 경우만 사용 가능)

a = ['a','b','c','d','e']
print('-'.join(a)) #a-b-c-d-e
print('/'.join(a)) #a/b/c/d/e
print(''.join(a)) #abcde

split: 문자영을 리스트의 요소들로 쪼갭니다.

a = 'a b c d e'
a.split() #공백을 기준으로 split ->['a', 'b', 'c', 'd', 'e']

a = 'a,b,c,d,e'
a.split(',') #','를 기준으로 split -> ['a', 'b', 'c', 'd', 'e']

튜플

튜플이란?

  • 리스트와 비슷하게 여러 요소들을 묶을 수 있습니다.
  • 다만 튜플의 요소는 수정이나 삭제가 불가능합니다. (값 치환 불가능)
  • 프로그램 실행 중 절대 변하지 않거나 변해서는 안되는 값들이 있다면 튜플로 저장하는 것이 좋습니다.
  • 요소들을 괄호(())로 감싸주면 튜플이 됩니다.

튜플 함수

  • len: 튜플의 길이를 구합니다.
  • sum, min, max: 튜플의 요소들의 합, 최솟값, 최댓값을 구합니다.
  • in: 특정 요소가 튜플 안에 있는지 확인합니다.
  • count: 튜플의 특정 요소의 개수를 반환합니다.
  • index: 튜플에 요소가 있는 경우 인덱스 값을 반환합니다.
  • join: 튜플의 요소들을 하나의 문자열로 합칩니다.

튜플 함수 심화

  • max(튜플, key = lambda x:x[인덱스]) : 다중 튜플의 경우 정렬 기준을 정의하여 튜플 내 최댓값을 탐색함
  • min(튜플, key = lambda x:x[인덱스]) : 다중 튜플의 경우 정렬 기준을 정의하여 튜플 내 최솟값을 탐색함
a = (('a', 1), ('b',7), ('c', 3), ('d', -5), ('e', -9))
print(max(a, key = lambda x:x[0])) #인덱스 0인 a (문자)를 기준으로 최댓값 탐색
print(max(a, key = lambda x:x[1])) #인덱스 1인 1 (숫자)를 기준으로 최댓값 탐색

print(min(a, key = lambda x:x[0]))인덱스 0인 a (문자)를 기준으로 최솟값 탐색
print(min(a, key = lambda x:x[1]))인덱스 0인 a (문자)를 기준으로 최솟값 탐색

#두번째 요소의 절댓값을 기준으로 최댓값/최솟값을 탐색하고 싶다면?
print(max(a, key = lambda x:abs(x[1]))) #('e', -9)
print(min(a, key = lambda x:abs(x[1]))) #('a', 1)

딕셔너리

딕셔너리란?

  • 키(Key): 값(Value)의 쌍이 모여있는 사전 형태의 자료형입니다.
  • 키: 값의 쌍을 중괄호({})로 감싸줍니다.
  • 변수명 = {'키1':값, '키2':값, ...}
  • 키는 중복될 수 없고, 리스트는 키가 될 수 없습니다.
    위치로 인덱싱이 되지 않습니다.
dic = {'name':'merry',\
      'num':1,\
      'birth':'jan'}
dic # output
{'name': 'merry', 'num': 1, 'birth': 'jan'}

딕셔너리 요소 추가, 삭제하기

추가: 딕셔너리변수명[추가할키]=추가할값

print(dic) #{'name': ['merry', 'john'], 'num': [1, 2, 3], 'birth': ['jan', 'feb', 'nov']
dic['country'] = ['Korea','US']
print(dic) #{'name': ['merry', 'john'], 'num': [1, 2, 3], 'birth': ['jan', 'feb', 'nov'], 'country': ['Korea', 'US']}

삭제: del 딕셔너리변수명[삭제할키]

del dic['country']
print(dic) #{'name': ['merry', 'john'], 'num': [1, 2, 3], 'birth': ['jan', 'feb', 'nov']}

딕셔너리 키로 값 찾기

딕셔너리변수명[찾을키]

print(dic['name']) #['merry', 'john']
print(dic['num']) #[1, 2, 3]

딕셔너리 함수

keys(): 키들을 반환합니다.
values(): 값들을 반환합니다.
items(): 키와 값의 튜플 쌍들을 반환합니다.

dic #{'name': ['merry', 'john'], 'num': [1, 2, 3], 'birth': ['jan', 'feb', 'nov']}

print(dic.keys()) #dict_keys(['name', 'num', 'birth'])

print(dic.values()) #dict_values([['merry', 'john', 'kevin'], [1, 2, 3], ['jan', 'feb', 'nov']])

print(dic.items())#dict_items([('name', ['merry', 'john', 'kevin']), ('num', [1, 2, 3]), ('birth', ['jan', 'feb', 'nov'])])
#위의 값들의 타입은 dict_keys or values ,or items라는 유니크한 값을 가짐. 따라서 리스트의 형태로 변환하고 싶으면 list()함수로 감싸줘야됨.

get(원하는키값): 원하는 키 값에 대응되는 값을 반환합니다.
딕셔너리변수명[원하는키값]과 똑같은 값을 반환합니다.

dic.get('name')#['merry', 'john']
dic['name'] #위와 같은 값 

update: 딕셔너리에 새로운 딕셔너리를 추가합니다.

dic1 = {'a':[1,2], 'b':3, 'c':[4,5,6]}
dic2 = {'d':10, 'e':[102,101]}
dic1.update(dic2)
dic1 #{'a': [1, 2], 'b': 3, 'c': [4, 5, 6], 'd': 10, 'e': [102, 101]}

zip: 튜플/리스트 두 개를 하나의 딕셔너리로 변환합니다.

keys = ("a", "b")
values = (1,2)
result = dict(zip(keys, values))
print(result) #{'a': 1, 'b': 2}

keys = ["a", "b"]
values = [1,2]
result = dict(zip(keys, values))
print(result) #{'a': 1, 'b': 2}
profile
최고의 데이터 분석가를 목표로 하는 박세우입니다.

0개의 댓글