하나의 변수에 하나의 값을 넣다 보니 효율일 떨어짐
⇒ 리스트 타입 변수 하나에 여러 값을 넣음
a = [1,2,3]
b =(1,2,3)
리스트는 변경가능 vs 튜플은 변경 불가능
여러 값을 저장할순 있지만 이후 값을 변경할수 없는 자료구조
t1 = (1,2,'a','b')
# 값 변경 안된다
t1.append(1) # 에러
del t1[0] # 에러
# 값 참조는 가능
print(t1[0])
print(t1[0:2])
# 튜플끼리 연산은 가능
t2 = (1,2)
t1+t2 #새로운 튜플이 생김
t1*3
튜플은 변하지 않는다, 새로운 튜플이 만들어진다
키와 값으로 구성되어있는 자료구조 (연관배열,해시라고도 불림)
dic = {'name': 'Eric', 'age' : 15}
print(dic['name']) // Eric이 나옴
# 딕셔너리 쌍 추가하기
a = {1:'a'}
a['name'] = "익명"
print(a)
# 삭제하기
del a[0] # 0이라는 키는 없다, 에러
del a[1] # 1이라는 키를 삭제
# 주의사항, 겹치면 안됨
a = {1:'a', 1:'b'} # 키는 중복 ㄴㄴ, 값은 ㄱㅊ=> 마지막 키만 나옴
# 활용
a = {1:'a',2:'b',3:'c'}
print(a.key()) # => dict_key([1,2,3]) 라는 새로운 리스트 생김
print(a.values()) # => dict_values([1,2,3]) 라는 새로운 리스트 생김
print(a.item()) # => dict_items([(1,'a'),(2,'b'),(3,'c')]) 라는 새로운 튜플+리스트 생김
# 모두지우기
a.clear()
# 값 얻기
a.get(1) # => 없어도 에러가 나지 않고, None값으로 대체됨
# 키 찾기
4 in a # a 딕셔너리 안에 4가 있는지 찾음 => bool 값으로 나옴
키와 값으로 구성되어있다
중복된 요소를 가질수 없는 집합 자료구조
# 집합 자료형
s1 = set([1,2,3]) #리스트를 set으로 감싸서 집합으로 만듬
s1 = {1,2,3} # {}로 집합 만듬
# 중복 제거
ㅣ=[1,2,2,3,3]
s2 = set(l)
# 문자열을 쪼갤때
s1 = set("Hello") # 중복 없고, 순서없이 나옴
# 집합
s1 = set([1,2,3,4,5,6])
s2 = set([4,5,6,7,8,9])
# 교집합
s1 & s2 # = {4,5,6}
s1.intersection(s2) # = {4,5,6}
# 합집합
s1 | s2 # = {1,2,3,4,5,6,7,8,9}
s1.union(s2) # = {1,2,3,4,5,6,7,8,9}
# 차집합
s1 - s2 # = {1,2,3}
s1.difference(s2) # = {1,2,3}
# 추가 - 하나만
s1.add(7) # = {1,2,3,4,5,6,7}
# 추가 - 여러개
s1.update([7,8,9,1]) # 중복된건 제외되고 추가됨
# 제거
s1.remove(1) # 1이 지워짐
참, 거짓을 뜻함
a = True
a = False
자료형의 값을 저장하는 공간
변수를 만들떈 =
기호를 사용한다
파이썬에서 사용하느 변수는 객체를 가르키는것이다
a = 3(3이라는 숫자 자료형 객체를 a에 넣음)
변수 a는 객체가 저장된 메모리의 위치를 가르키는 래퍼런스다
a = [1,2,3]
b = a # a가 가르키는 리스트의 주소를 b에 줌
a[1]=4 로 하면
b를 출력할때도 바뀌는데
b가 가르키는 리스트가 바뀐거니깐
b도 바뀌는것이다
# 값은 주소인지 아는법
a is b
# 복사를 할려면?
b = a[:]
# 튜플 이용하기
a,b =('A', 'B') # a = A, b = B
(a,b) =('A', 'B') # a = A, b = B
(a,b) ='A', 'B' # a = A, b = B
# = 이용
a = b= 'hellow'
# 값 교체
a = 3
b = 5
a,b = b,a