단일(single): numeric(int, float, complex), bool
군집(container): list, tuple, dictinary, set
-> 임의의 자료형의 원소를 여러 개의 담을 수 있는 자료형들
(1) 구간 추출
✍입력
L = [1,9,3,2]
L[1:2+1:1]
💻 출력
[9, 3]
(2) 부분 교체
✍입력
L = [1,9,3,2]
L[1:3] = [99, 101]
💻 출력
[1, 99, 101, 2]
(3) 부분 삭제
✍입력
L = [1,9,3,2]
L[1:3] = []
L
💻 출력
[1, 2]
(4) 여러 가지 슬라이싱 방법
(1) 원소 추가(append,extend,insert)
(2) 원소 제거(remove,pop,clear)
✍입력
L = [1,3,4,4,3,2,7,4,1,7,4]
del_list = [4,7]
for x in del_list:
while x in L:
L.remove(x)
print(L)
💻 출력
[1, 3, 3, 2, 1]
(3) 원소 순서 재배치(reverse,sort,sorted)
(4) 원소 정보 확인(count,index)
✍입력
a = [-3.2, 5.5, 4.1, 1.1, -1.3, 2.7, 0.5]
temp = a.copy()
temp.sort(reverse=True) # 내림차순 정렬
print(f'sorted={temp}')
for x in temp[:3]:
while x in a:
a.remove(x)
print(f'removed={a}')
💻 출력
sorted=[5.5, 4.1, 2.7, 1.1, 0.5, -1.3, -3.2]
removed=[-3.2, 1.1, -1.3, 0.5]
-> 리스트의 copy 메서드나 슬라이싱 b=a[:]를 사용하면 새로운 객체를 생성한다.
✍입력
c=[1,2,3]
d=c.copy()
d[0]=100
d
id(c)
💻 출력
140673228259392
✍입력
id(d) # 새로운 객체를 생성한다
💻 출력
140673228240576
✍입력
tuple('abcd') # 문자열에서 튜플로
tuple([1,2,3]) # list에서 튜플로
a,b,c = 1,2,3 # 튜플의 언패킹
a
💻 출력
('a', 'b', 'c', 'd')
(1, 2, 3)
1
✍zip함수/ 원소 수정 및 추가
# zip함수를 이용하여 사전으로 변환
k = [0,1,2]
v = ['zero', 'one', 'two']
d = dict(zip(k,v))
d
# 원소 수정 (가변적)
f = {0:'zero', 1:'one', 2:'two'}
f[0] = 'null'
f
# 원소 추가
e = {0:'zero', 1:'one', 2:'two'}
e[3] = 'three'
e
💻 출력
{0: 'zero', 1: 'one', 2: 'two'} # zip
{0: 'null', 1: 'one', 2: 'two'} # 원소 수정
{0: 'zero', 1: 'one', 2: 'two', 3: 'three'} # 원소 추가
✍중첩사전
# 중첩 사전
# 중첩(nested) 사전은 사전의 키에 대한 값이 또다른 하위 사전인 경우를 말한다
# D={key1:{sk1:sv1, sk2:sv2...}, key2:}
score = {'재롱': {'국어':50,'수학':78,'과학':46},
'또치':{'국어':80,'수학':100,'과학':78},
'또롱':{'국어':15,'수학':90,'과학':78}}
score['재롱']['과학']
💻 출력
46
✍keys, values, items
d = {0:'zero', 1:'one', 2:'two'}
d.keys()
e = {0:'zero', 1:'one', 2:'two'}
e.values()
f = {0:'zero', 1:'one', 2:'two'}
f.items()
for k,v in d.items():
print(k,v)
💻 출력
dict_keys([0, 1, 2]) # keys
dict_values(['zero', 'one', 'two']) # vaues
dict_items([(0, 'zero'), (1, 'one'), (2, 'two')]) # items
# for문
0 zero
1 one
2 two
✍union, intersection, difference, in
a = {1,2,3}
b = {2,3,4,5}
a.union(b)
a.intersection(b)
a.difference(b)
5 in a
💻 출력
{1, 2, 3, 4, 5} # union
{2, 3} # intersection
{1} # difference
False # in
✍ for문
inch = [1,2,3,4]
cm = []
for x in inch:
cm.append(2.54*x)
cm
이 코드를 어떻게 하면 간략화 할 수 있을까?
함축을 이용하면 된다
✍ comprehension
inch = [1,2,3,4]
cm = [2.54*x for x in inch]
cm
💻 출력
[2.54, 5.08, 7.62, 10.16]
📚 참고자료:
위키독스, 점푸 투 파이썬, 'https://wikidocs.net/15', (2023.03.22)