본문 바로가기
  • Slow and Steady wins the race
abt Python/기초

python 변수와 자료형

by cloudin 2023. 8. 1.

리스트

  • []를 통해 생성하며 리스트의 항목에는 대부분의 데이터 타입 사용가능
  • 서로 다른 데이터 타입을 리스트 항목으로 지정 가능
  • 리스트에서 각 항목은 '변수명[i]'로 지정하여 사용할 수 있으며 범위는 0부터 N-1까지
  • 특정 항목을 변경하기 위해서는 '변수명[i] = new data'를 활용하면 됨
  • 숫자, 문자, bool, 리스트 등을 혼합할 수 있음
m_stu = [70, 85, 100, 95, 80]
mix_list = [0, 1, 'match-up', 'program', m_stu]
mix_list
#[0, 1, 'match-up', 'program', [70, 85, 100, 95, 80]]

 

  • 더하기, 곱하기 연산 가능
list1 = [1,2,3,4]
list2 = [11,12,13,14]
listsum = list1 + list2 # 리스트 연결하기 #
listmul = list1 * 3 # 리스트 반복하기 #
print(listsum)
print(listmul)
#[1, 2, 3, 4, 11, 12, 13, 14]
#[1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4]

 

  • 리스트에서 'del 리스트명[i]' 를 통해 인덱스를 삭제할 수 있음
print(list)
#[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
del list[9]
print(list)
#[1, 2, 3, 4, 5, 6, 7, 8, 9]

 

  • 해당 위치에서 인덱스가 존재하는지 확인하는 방법
print(4 in list) #True
print(7 in list) #True
print(10 in list) #False

 

 

리스트의 다양한 메서드

  • append() : 리스트에서 항목 하나를 맨 마지막에 추가
M_stu = ['박지민', '김태형', '전정국', '김석진']
M_stu.append('정호석')
print(M_stu)
# ['박지민', '김태형', '전정국', '김석진', '정호석']

 

  • Insert() : 리스트에서 특정 위치에 항목을 삽입
M_stu.insert(4, '김남준')
print(M_stu)
# ['박지민', '김태형', '전정국', '김석진', '김남준', '정호석']

 

  • extend() : 리스트에서 항목 여러개를 맨 마지막에 추가
M_stu.extend(['민윤기', '박서준'])
print(M_stu)
# ['박지민', '김태형', '전정국', '김석진', '김남준', '정호석', '민윤기', '박서준']

 

  • remove() : 입력값과 첫 번째로 일치하는 항목을 리스트에서 삭제
M_stu.remove('김석진')
print(M_stu)
# ['박지민', '김태형', '전정국', '김남준', '정호석', '민윤기', '박서준']

 

  • pop() : 리스트의 마지막 항목을 제거한 후에 반환
popstu = M_stu.pop()
print(popstu)
# 박서준
print(M_stu)
# ['박지민', '김태형', '전정국', '김남준', '정호석', '민윤기']

 

  • index() : 리스트에서 인자와 일치하는 첫 번째 항목의 위치를 반환
indexstu = M_stu.index('박지민')
print(indexstu)
# 0

 

  • count() : 리스트에서 인자와 일치하는 항목의 개수를 반환
countstu = M_stu.count('김태형')
print(countstu)
# 1

 

  • sort() : 숫자나 문자열로 구성된 리스트 항목을 순방향으로 정렬
M_stu.sort()
print(M_stu)
# ['김남준', '김태형', '민윤기', '박지민', '전정국', '정호석']
# 가나다라 순으로 정렬

 

  • reverse() : 리스트 항목을 끝에서부터 역순으로 정렬
M_stu.reverse()
print(M_stu)
# ['정호석', '전정국', '박지민', '민윤기', '김태형', '김남준']

 


 

튜플

  • ()를 이용하거나 괄호를 사용하지 않고 데이터를 입력
tp = (1,2,3,4) # 소괄호를 이용한 데이터 입력
print(tp)
type(tp)
# (1, 2, 3, 4)
# tuple

tp2 = 5,6,7,8 # 괄호 없이 데이터 입력
print(tp2)
type(tp2)
# (5, 6, 7, 8)
# tuple

 

  • 인자가 1개 있는 튜플의 경우 마지막에 , 를 입력해야 함
tp3 = (1, ) # , 반드시 입력
tp4 = 2, # , 반드시 입력
print(tp3)
print(tp4)
# (1,)
# (2,)

 

  • 튜플의 경우 생성된 요소를 변경하거나 삭제가 불가능함. 따라서 생성 후 변경할 필요가 없을 경우에 사용
  • 요소를 변경/삭제는 불가능하나 변경하지 않는 index(), count()는 사용 가능
tp6 = ('가', '나', '다', '라', '마', '바')
tp6.index('다')
# 2

tp7 = ('가', '가', '가', '가', '나', '나', '다')
tp7.count('가')
# 4

 


 

세트

  • 수학의 집합 개념으로 데이터의 순서가 없고 중복하여 사용할 수 없음
  • 세트를 구축할 경우 ({})의 형태로 구축함
seta = {1,2,3,4}
setb = {1,2,2,3,4}
print(seta)
print(setb)
# {1, 2, 3, 4}
# {1, 2, 3, 4}

type(sata)
# set

 

  • 교집합, 합집합, 차집합을 구할 수 있음
A = {1,2,3,4,5,6,7,8,9,10}
B = {2,4,5,11,13}
A.intersection(B) # 교집합
# {2, 4, 5}

A.union(B) # 합집합
# {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13}

A.difference(B) # 차집합
# {1, 3, 6, 7, 8, 9, 10}

#########################
A = {1,2,3,4,5,6,7,8,9,10}
B = {2,4,5,11,13}
A&B # 교집합
# {2, 4, 5}

A|B # 합집합
# {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13}

A-B # 차집합
# {1, 3, 6, 7, 8, 9, 10}

 

  • 데이터 타입을 변화해야 할 경우 list(), tuple(), set()를 이용하여 변환이 가능함
B = tuple(A) # tuple로 변환
print(B)
type(B)
# (1, 2, 3)
# tuple

C = set(A) # set로 변환
print(C)
type(C)
# {1, 2, 3}
# set

D = list(B) # list로 변환
print(D)
type(D)
# [1, 2, 3]
# list

 

 


딕셔너리

  • 표제어와 설명을 사전형식으로 구축하여 사용하는 방법
  • 키(key)와 값(value) 쌍으로 구성되어 있음
  • 중괄호를 이용해 구성하며 키와 값의 구분은 : 로 구분하여 데이터를 생성
dict = {"남자":"Men", "여자":"Woman", "아이":"Baby"}
dict
# {'남자': 'Men', '여자': 'Woman', '아이': 'Baby'}

type(dict)
# dict

dict["남자"]
# 'Men'

 

  • 숫자와 문자열로 이루어진 경우 특정 위치의 데이터를 출력하기 위해서는 [숫자]를 이용함 (이는 딕셔너리 키로 인덱스처럼 위치를 뜻하는 것은 아님)
dict1={1:"Man", 2:"Woman", 3:"Baby"}
dict1
# {1: 'Man', 2: 'Woman', 3: 'Baby'}

dict1[1] # 위치가 아닌 키 값
# 'Man'

dict2={1:100, 2:200, 3:300, 4:400}
print(dict2)
print(dict2[2]) # 키와 값이 모두 숫자인 경우
# {1: 100, 2: 200, 3: 300, 4: 400}
# 200

dict3 = {"list1":[1,2,3], "list2":[4,5,6]}
print(dict3)
print(dict3["list2"]) # 키가 문자열이고 값이 리스트인 예
# {'list1': [1, 2, 3], 'list2': [4, 5, 6]}
# [4, 5, 6]

dict4 = {1:100, "list":{1:100, 2:200}, "tuple":{"A":[1,2,3], "B":(4,5,6)}, "string":"파이썬"}
dict4 # 다양한 형태의 키와 값을 가지는 경우
# {1: 100, 'list': {1: 100, 2: 200}, 'tuple': {'A': [1, 2, 3], 'B': (4, 5, 6)}, 'string': '파이썬'}

 

  • 딕셔너리에 값 변경/추가 시 dic[key] = value
  • - key와 value 값이 있을 경우 : 변경
  • - key와 value 값이 없는 경우 : 추가
dict1[1]="Gender" # 값 변경하기
dict1
# {1: 'Gender', 2: 'Woman', 3: 'Baby'}

dict1[4] = "Grand mother" # 값 추가하기
dict1
# {1: 'Gender', 2: 'Woman', 3: 'Baby', 4: 'Grand mother'}

del dict1[2] # 딕셔너리에 데이터 삭제하기
dict1
# {1: 'Gender', 3: 'Baby', 4: 'Grand mother'}

 

  • 딕셔너리 메서드
메서드 설명
keys() 키 전체를 리스트 형태로 반환할 때 사용 dict1.keys()
values() 값 전체를 리스트 형태로 반환할 때 사용 dict1.values()
items() 키와 값을 튜플 상태로 반환할 때 사용 dict1.items()
update() 딕셔너리 데이터를 추가할 때 사용 dict1.update(dict2)
clear() 모든 항목 삭제 dict1.clear()
dict1={1:"man", 2:"woman", 3:"baby"}
print(dict1.keys())
# dict_keys([1, 2, 3])

print(dict1.values())
# dict_values(['man', 'woman', 'baby'])

print(dict1.items())
# dict_items([(1, 'man'), (2, 'woman'), (3, 'baby')])

dict2={4:100, 5:200, 6:300, 7:400}
dict1.update(dict2)
dict1
# {1: 'man', 2: 'woman', 3: 'baby', 4: 100, 5: 200, 6: 300, 7: 400}

dict2.clear()
print(dict2)
# {}

'abt Python > 기초' 카테고리의 다른 글

python 기본 함수  (0) 2023.08.10
python 입력과 출력  (0) 2023.08.10
python 제어문  (0) 2023.08.07
python을 활용한 연산  (0) 2023.08.01
Python 프로그래밍 기초  (0) 2023.07.31