끄적끄적

반응형

자료형2


리스트

대괄호 묶음

l1 = [1,2,3]


튜플

소괄호 묶음

t1 = (1,2,3,4,5)

t2 = ('a','b')

리스트와 비슷하나 값을 볼수는 있지만 변경할 수는 없다.

대입, append, del 불가

인덱싱, 슬라이싱, 더하기, 곱하기는 가능

★튜플은 변화하지 않는다.

print(t1[2]) # 3

print(t1[0:2]) # (1,2)

print(t1+t2) # (1,2,3,4,5,'a','b')

print(t1*3) # (1,2,3,4,5,1,2,3,4,5,1,2,3,4,5)




https://tariat.tistory.com/705

딕셔너리 (중요!)

사전 => 단어 : 뜻 => 키(Key) : 값(Value)

리스트 처럼 인덱스 번호로 찾는 게 아니라 키로 값을 찾는 형식이다.

{ } 중괄호 묶음

★★★키로 찾아야 하기 때문에 키(Key)는 절대 중복되면 안된다.

dic = {'Key1':'Value1', 'Key2':'Value2', 'Key3':'Value3'}


dic = {'name' : 'Eric', 'age' : 15}

print(dic['name']) #Eric



딕셔너리 쌍 추가

dic = {}


dic['Key'] = 'Value'


dic1 = {1:'a'}

dic1[2] = 'b'

dic1['name'] = '익명'

print(dic1) #{1: 'a', 2: 'b', 'name': '익명'}



딕셔너리 요소 삭제

키만 적어주면 값도 같이 삭제됨.

del dic['Key']


del dic1[1] #{2: 'b', 'name': '익명'}



Key 리스트 만들기

dic2 = {1:'빨',2:'주',3:'노',4:'초',5:'파'}

print(dic2.keys()) #dict_keys([1, 2, 3, 4, 5])


Value 리스트 만들기

print(dic2.values()) #dict_values(['빨', '주', '노', '초', '파'])


print(dic2.items()) #dict_items([(1, '빨'), (2, '주'), (3, '노'), (4, '초'), (5, '파')]) 리스트 안에 튜플 형태로 각각 저장


for k in dic2.keys(): #키를  하나씩 뽑아서 출력

print(k)


for k in dic2.values(): #Value 값을 하나씩 뽑아서 출력

print(k)


for k, v in dic2.items(): #아이템(키,값)을 하나씩 뽑아서 출력

print("키는 : " + str(k))

print("값은 : " + v)

키는 : 1

값은 : 빨

키는 : 2

값은 : 주

키는 : 3

값은 : 노

키는 : 4

값은 : 초

키는 : 5

값은 : 파


딕셔너리 지우기

dic2 = {1:'빨',2:'주',3:'노',4:'초',5:'파'}

dic2.clear()

print(dic2) #{}


Key로 Value 얻기

dic2 = {1:'빨',2:'주',3:'노',4:'초',5:'파'}

print(dic2[1] #빨

print(dic2.get(1)) #빨

#없는 키를 다루려고 할 때 차이가 있다.

print(dic2[6] #애러가 뜨고 프로그램이 종료된다.

print(dic2.get(6)) #None 애러가 뜨지않고 None 출력

print(dic2.get(6,'없음')) #없음 6이라는 키가 없을 때 '없음'을 출력

print(4 in dic2) #True dic2 딕셔너리에 4라는 키가 있느냐에 True 출력

print(8 in dic2) #False dic2 딕셔너리에 8라는 키가 있느냐에 False 출력



집합 (Set)

집합의 핵심 : 중복된 요소를 가질 수 없다. = 중복을 허용하지 않는다.

순서가 없다.

데이터를 다룰 때 많이 사용한다. 두개의 집합이 있으면 중복되는 것만 고른다거나 아니면 중복되는 것을 빼거나 할 때 사용


s1 = set({1,2,3})

s2 = {1,2,3} # 위에 것과 같은 의미

print(s1) #{1, 2, 3}

print(s2) #{1, 2, 3}


집합의 활용

L1 = [1,2,2,3,4,4,4]

newList = list(set(L1))

print(newList) #[1, 2, 3, 4] 리스트를 집합의 형태로 바꾸어서 중복되는 내용을 없애고 그 집합을 다시 리스트 형태로 만들어서 newList에 저장 (즉 리스트의 중복된 내용을 삭제할 때)


s3 = set("hello")

print(s3) #{'e', 'l', 'h', 'o'} 문자열에서 중복이 제거된 개별 문자로 쪼개짐. 순서도 뒤죽박죽 (집합=중복이 없고, 순서도 없다.)


교집합

s4 = set([1,2,3,4,5,6])

s5 = set([4,5,6,7,8,9])

print(s1 & s2) #{4, 5, 6} 교집합 : 공통된 값만 출력

print(s4.intersection(s5)) #{4, 5, 6} 교집합 : 공통된 값만 출력


합집합

print(s4 | s5) #{1, 2, 3, 4, 5, 6, 7, 8, 9} 합집합

print(s4.union(s5)) #{1, 2, 3, 4, 5, 6, 7, 8, 9} 합집합


차집합

print(s4 - s5) #{1, 2, 3} 차집합

print(s4.difference(s5)) #{1, 2, 3} 차집합


집합, 값 1개 추가하기 add

s4 = set([1,2,3,4,5,6])

s4.add(7)

print(s4) #{1, 2, 3, 4, 5, 6, 7}


집합, 값 여러개 추가하기 update

s4 = set([1,2,3,4,5,6])

s4.update([7,8,9,1,2])

print(s4) #{1, 2, 3, 4, 5, 6, 7, 8, 9} 중복된 값은 입력되더라도 추가가 되지 않고, 중복되지 않은 값들만 추가된다.


특정값 제거하기 remove

s4 = set([1,2,3,4,5,6])

s4.remove(3)

print(s4) #{1, 2, 4, 5, 6}



(Bool) 불 자료형

값 = True 또는 False (앞에는 대문자로 적어야 한다.)


파이썬 자료형의 참/거짓

"문자열" - True

"" - False (빈 문자열)

[1,2,3] - True

[] - False

{} - False

() - False

1 - True

0 - False

None - False

*값이 있으면 True, 값이 없으면 False로 인식


a = [1,2,3,4]

while a:

a.pop()

print(a)

#

[1, 2, 3]

[1, 2]

[1]

[] #False로 인식해서 while문 종료



변수 - 메모리

a = 1

변수(a)에 값(1)을 넣으면 그 값은 실제로는 메모리(RAM)에 들어있고 변수에는 값이 저장된 메모리의 주소(번지)가 들어가게 된다.

*파이썬에서 사용하는 변수는 객체를 가리키는 것! 

(같은 값을 가지는 게 아니라 같은 메모리의 주소를 가지는 것)


http://pythontutor.com/live.html

값이 실제로 어떻게 돌아가는지 시각적으로 확인 가능


a = [1,2,3]

b = a

a[1] = 4

print(a) #[1, 4, 3]

print(b) #[1, 4, 3] #같은 주소를 가지므로 같은 값을 나타냄


주소값 확인 id

print(id(a)) #924120797640

print(id(b)) #924120797640


같은 주소를 바라보고 있는지 확인

print(a is b) #True



주소가 아닌 값을 그대로 복사하는 방법 [:]

a = [1,2,3]

b = a[:] #a의 처음부터 끝까지를 슬라이싱해서 b에서 값을 준다.

a[1] = 4

print(a) #[1, 4, 3]

print(b) #[1, 2, 3] #값이 변하지 않는다.


print(id(a)) #773681861064

print(id(b)) #773681861576


print(a is b) #False



copy 모듈로 복사하는 방법

from copy import copy #요거 추가해주고

a = [1,2,3]

b = copy(a) #요렇게 사용한다.

a[1] = 4

print(a) #[1, 4, 3]

print(b) #[1, 2, 3] #값이 변하지 않는다.



변수를 만드는 여러가지 방법

a = 1


b, c = ('python','life') #튜프을 이용해서 각각 할당

print(b) #python

print(c) #life


(d, e) = 'python','life' #튜플을 이용해서 각각 튜플에 할당.

print(d) #python

print(e) #life


[f, g] = ['python','life']

print(f) #python

print(g) #life


h = i = 'hello'

print(h) #hello

print(i) #hello


#2개의 변수 값을 서로 맞바꾸기

j = 3

k = 5

j,k = k,j

print(j) #5

print(k) #3


https://www.youtube.com/watch?v=2FBX-JcZ2ks&list=PLU9-uwewPMe2AX9o9hFgv-nRvOcBdzvP5&index=4


반응형
Please Enable JavaScript!
Mohon Aktifkan Javascript![ Enable JavaScript ]