리스트 a=[1,2,3] []
튜플 b=(1,2,3) ()
둘의 차이점은?
리스트는 수정 가능, 튜플은 수정 불가능(고정된 것)
*튜플의 핵심!!
인덱싱, 슬라이싱은 가능함. 값을 변화시키는 것이 안될뿐..
a=(1, 2)
a = a+(3, 4)
print(a)
>>> (1, 2, 3, 4)
이건 튜플 값을 하나하나 변경하는 것이 아니라 변수 a 자체에 새로운 값을 넣는 것이므로 a값이 바뀐 것!
{}
>>> dic = {'name':'pey', 'phone':'0123456789', 'birth':'1118'}
a = {1: 'hi', 1:'b'}
print(a)
>>> {1: 'b'}
# 키 뽑기
a = {1: '파랑구름', 2:'이현주', 3:'민Min'}
print(a.keys())
>>> dict_keys([1, 2, 3])
# 밸류 뽑기
a = {1: '파랑구름', 2:'이현주', 3:'민Min'}
print(a.values())
>>> dict_values(['파랑구름', '이현주', '민Min'])
# 키에 따른 값끼리 뽑기
a = {1: '파랑구름', 2:'이현주', 3:'민Min'}
print(a.items())
>>> dict_items([(1, '파랑구름'), (2, '이현주'), (3, '민Min')])
# for문에 적용
a = {1: '파랑구름', 2:'이현주', 3:'민Min'}
for k, v in a.items():
print("key: " + str(k))
print("value: " + v)
>>> key: 1
value: 파랑구름
key: 2
value: 이현주
key: 3
value: 민Min
# 딕셔너리 비우기
a = {1: '파랑구름', 2:'이현주', 3:'민Min'}
a.clear()
print(a)
>>> {}
# get 활용하기 (대괄호 했을 떄: Key Error / get: None)
a = {1: '파랑구름', 2:'이현주', 3:'민Min'}
print(a.get(4))
print(a[4])
>>> None
KeyError: 4
a = {1: '파랑구름', 2:'이현주', 3:'민Min'}
print(a.get(4, '없음'))
>>> 없음
# in
a = {1: '파랑구름', 2:'이현주', 3:'민Min'}
print(1 in a)
print(4 in a)
>>> True
False
{}
l=[1,2,2,3,3,3]
newList = list(set(l)) -> 중복 제거 후 다시 리스트로 만들어주는 과정
print(newList)
>>> [1, 2, 3]
# 문자열을 set으로 감싸면 쪼개짐
s1 = set("Hello")
print(s1)
>>> {'e', 'o', 'H', 'l'}
# 교집합
s1 = set([1,2,3,4,5,6])
s2 = set([4,5,6,7,8,9])
print(s1 & s2) = print(s1.intersection(s2))
>>> {4, 5, 6}
# 합집합
s1 = set([1,2,3,4,5,6])
s2 = set([4,5,6,7,8,9])
print(s1 | s2) = print(s1.union(s2))
>>> {1, 2, 3, 4, 5, 6, 7, 8, 9}
# 차집합
s1 = set([1,2,3,4,5,6])
s2 = set([4,5,6,7,8,9])
print(s1 - s2) = print(s1.difference(s2))
>>> {1, 2, 3}
# 값 하나 추가
s1 = set([1,2,3,4,5,6])
s1.add(7)
print(s1)
>>> {1, 2, 3, 4, 5, 6, 7}
# 여러개 값 추가
s1 = set([1,2,3,4,5,6])
s1.update([7, 8])
print(s1)
>>> {1, 2, 3, 4, 5, 6, 7, 8}
# 집합에 원래 있는 값 포함해서 추가할 경우
s1 = set([1,2,3,4,5,6])
s1.update([7, 8, 1])
print(s1)
>>> {1, 2, 3, 4, 5, 6, 7, 8} -> 원래 들어있던 1은 제외되고 나머지만 들어간다!!
# 특정 값 제거
s1 = set([1,2,3,4,5,6])
s1.remove(1)
print(s1)
>>> {2, 3, 4, 5, 6}
if a==3:
print(a)
while a==3:
a+=1
a=True
print(type(a))
>>> <class 'bool'>
a = [1, 2, 3, 4]
while a:
a.pop()
print(a)
>>> [1, 2, 3]
[1, 2]
[1]
[]
#id를 찍어서 주소값 확인
a = [1, 2, 3, 4]
b=a
a[1]=4
print(id(a))
print(id(b))
>>> 4367859264
4367859264
#is 사용하여 같은 주소인지 확인
a = [1, 2, 3, 4]
b=a
a[1]=4
print(a is b)
>>> True
#a 리스트를 b에 그대로 복사하고 싶은 경우
a = [1, 2, 3, 4]
b = a[:] -> 슬라이싱 해서 그대로 넣어주기!
a[1]=4
print(a)
print(b)
>>> [1, 4, 3, 4]
[1, 2, 3, 4]
또는
from copy import copy
a = [1, 2, 3, 4]
b = copy(a)
a[1]=4
print(a)
print(b)
>>> [1, 4, 3, 4]
[1, 2, 3, 4]
1.
a,b = ('Python', 'life') -> 괄호는 생략해도 됨, or 앞쪽에 괄호 넣고 뒤에는 표시 안해도 됨, `[]`도 가능
print(a)
print(b)
>>> Python
life
2.
a = b = 'hello'
print(a)
print(b)
>>> hello
hello
*java에서는 a, b = 'hello'
3. 일반적으로 a와 b를 바꾸는 과정
a = 3
b = 5
tmp = b
b = a
a = tmp
print(a, b)
>>> 5 3
그러나 파이썬에서는 엄청 편한 방법이 존재한다!
a = 3
b = 5
a, b = b, a
print(a, b)
>>> 5 3
Reference
참고한 영상