티스토리 뷰

#튜플
#기본형식 리스트 a=[2,1,4] 튜플 a=(2,1,4)
#리스트는 마음대로 추가하고 조회하고 했지만
#튜플은 마음대로 볼수는 있지만 추가 삭제는 할수 없다
#튜플은 변하지 않는다!

t1=(1,2,'a','b')
# del t1[0]   #에러
print(t1[0:2])  # 
print(t1)  
t2=(3,4)
print(t1+t2)  #이건 되네 
print(t1*3)
#더하는 걸보고 튜플이 변했네 생각 할수도 있지만
#이경우 새로운 t1+t2한 새로운 튜플을 만들었다고 이해 할 수 있다.
#튜플은 변하지 않아!
print(t1[0]+1) #2
a=(1,2)
a=a*3  
print(a) #a를 바꾼다기보다는 a라는 변수공가에 새롭게 넣는 것이다

#dictionary 사전이라는 뜻
#key를 통해 value를 얻는다
#dictionary에는 순서가 없다
#value는 같아도 되는데 key는 다르면 안된다.
#API에 자주 활용됨
#dic={'key':'value'} 형식
dic={'name': 'Eric','age':15}
print(dic['name'])

a={1: 'a'}
a['name']="익명"
print(a)
del a['name'] #키값 찾아내서 삭제
#del a[0]  KeyError: 0
print(a)
#keys() 키만 모아라   values() 벨류만 모아라
a={1:'파랑구름',2:'이현준',3:'민준느ㅡㄴ'}
print(a.keys())  #출력값:dict_keys([1, 2, 3])      
print(a.values())
print(a.items())
for k in a.keys():  #1 2 3 출력
    print(k)
for k in a.values(): #벨류만 뽑아서 출력 
    print(k)
for k,v in a.items():   # key 따로 value 따로 
    print("키는: "+ str(k))
    print("벨류는: " + v)
#clear() 비우기
a.clear()
print(a)
#dic.get(key값,'없으면 출력')  get은 없으면 (default)None 출력  
a={1:'파랑구름',2:'이현준',3:'민준느ㅡㄴ'}
print(a.get(4))
print(a.get(4,"없어"))
#print(a[4])  없는 키다 에러
# 키값 in dic   키값이 dic안에 있나? 있으면 True 
print(4 in a)
print(1 in a)




 

(1, 2)
(1, 2, 'a', 'b')
(1, 2, 'a', 'b', 3, 4)
(1, 2, 'a', 'b', 1, 2, 'a', 'b', 1, 2, 'a', 'b')
2
(1, 2, 1, 2, 1, 2)
Eric
{1: 'a', 'name': '익명'}
{1: 'a'}
dict_keys([1, 2, 3])
dict_values(['파랑구름', '이현준', '민준느ㅡㄴ'])
dict_items([(1, '파랑구름'), (2, '이현준'), (3, '민준느ㅡㄴ')])
1
2
3
파랑구름
이현준
민준느ㅡㄴ
키는: 1
벨류는: 파랑구름
키는: 2
벨류는: 이현준
키는: 3
벨류는: 민준느ㅡㄴ
{}
None
없어
False
True

 

#집합  영어로는 set
#집합 자료형
#집합의 특징을 파이썬으로 구현했다
#중복된값 
#1.집합의 핵심 중복된 요소를 가질 수 없다.
# 즉 각 요소가 고유하다
#2. 순서가 없다 
#set([1,2,3]) 
#s1 = {1,2,3}
s1 = set([1,2,3])
s1 = {1,2,3}
print(s1)
print(type(s1))

l=[1,2,2,3,3]
newList=list(set(l))  #집합으로 만들어서 중복제거후 다시 리스트로 변환

s1 = set("Hello")
print(s1)  #문자열을 넣어도 쪼개진다 그리고 순서가 없다

#교집합 s1 & s2 또는 s1.intersection(s2) 로 표현
#와 개편해
s1= set([1,2,3,4,5,6])
s2= set([4,5,6,7,8,9])
print(s1 & s2)
print(s1.intersection(s2))
#합집합 s1 | s2 또는 s1.union(s2)
print(s1 | s2)
print(s1.union(s2))
#차집합
print(s1 - s2)
print(s2.difference(s1))
#add(하나의 값)   update([값,,])
s1.add(7)
print(s1)
s1= set([1,2,3,4,5,6])
s1.update([6,7,8,8,8,11])
print(s1)
s1.remove(2)
print(s1)
#boolean
#불 파이썬 기준
#"String"  참  
#"" rjwlt
#[1,2,3]  참
#[](){}  거짓
#1 참 0 거짓
#None 거짓
a=True
print(type(a))
if a:
    print(a)
a=" "
if a:
    print("띄어쓰기도 참이다")
else:
    print("거짓이다")
a=[1,2,3,4]
while a:
    a.pop()
    print(a)
##
a=[1,2,3]
b=a  #b가 a의 주소를 갖는다
a[1]=4  
print(b)
# id() 주소확인
print(id(a))
print(id(b))
# a is b 같은지 주소인지 비교
print(a is b)
#
a=[1,2,3]
b=a[:] # a를 슬라이싱 했을때 새로운 리스트가 생겨난다
a[1] = 4 
print(a)
print(b)
print(id(a))
print(id(b))
from copy import copy
a=[1,2,3]
b=copy(a)  #copy는 새로운주소에 값을 복사해서 줌
a[1]=4
print(a)
print(b)

a,b = ('python','life')  #아래랑 같음
[a,b]= ['python','life']
print(a)
print(b)
a=b=['python','life']
print(a)
print(b)
#값을 바꾸는 쉬운방법
a=3
b=5
(a,b) = (b,a)  #이게 되네
a,b = b,a  #이것도 됨 똑같음
a,b = b,a
print(a)
print(b)


​

{1, 2, 3}
<class 'set'>
{'e', 'H', 'o', 'l'}
{4, 5, 6}
{4, 5, 6}
{1, 2, 3, 4, 5, 6, 7, 8, 9}
{1, 2, 3, 4, 5, 6, 7, 8, 9}
{1, 2, 3}
{8, 9, 7}
{1, 2, 3, 4, 5, 6, 7}
{1, 2, 3, 4, 5, 6, 7, 8, 11}
{1, 3, 4, 5, 6, 7, 8, 11}

 

<class 'bool'>
True
띄어쓰기도 참이다
[1, 2, 3]
[1, 2]
[1]
[]
[1, 4, 3]
1848882291904
1848882291904
True
[1, 4, 3]
[1, 2, 3]
1848881995328
1848882291840
[1, 4, 3]
[1, 2, 3]
python
life
['python', 'life']
['python', 'life']
5
3