Contents
자료 구조
줄 결합
\ 를 사용하여 명시적으로 두 개 이상의 라인을 결합할 수 있다.
[], {}, () 가 사용되는 경우 \ 없이 줄을 나눠도 된다.
1
2
3
4
5
6
7
| if x > 100 and y > 100 \
and z > 100 and k > 100 \
and i > 100:
res = 100
a = [1,2,3,4,5
6,7,8,9,10]
|
문자열
1
2
3
4
5
6
7
| a = 'p'
b = 'y'
c = a + b
# c = 'py'
c = a * 2
# c = 'pp'
|
1
2
3
| a = 'abcd'
l = len(a)
# l = 4
|
1
2
3
4
5
6
7
8
| a[x:y]
# x <= a < y
a[x:]
# x <= a < len(a)
a[:y]
# 0 <= a < y
a[:]
# 0 <= a < len(a)
|
1
2
3
4
| #문자 개수 세기
a = "apple"
a.count("p")
# 2
|
1
2
3
4
5
6
| #위치 찾기
a = "apple"
a.find("p")
#1
#처음 나오는 위치 반환
#존재하지 않는다면 -1 반환
|
1
2
3
| str = "abc"
",".join(str)
# "a,b,c"
|
1
2
3
4
5
| a = 'hi'
a.upper()
# 'HI'
a.lower()
# 'hi'
|
1
2
3
4
5
6
| a = "a b c"
a.split()
# a = ['a', 'b', 'c']
a = "a,b,c"
a.split(',')
# a = ['a', 'b', 'c']
|
List
1
2
3
4
| a = []
# a = []
a = [1,2]
# a = [1,2]
|
1
2
3
4
5
6
| a = [1,2,3]
b = [4,5,6]
a + b
# [1,2,3,4,5,6]
a * 3
# [1,2,3,1,2,3,1,2,3]
|
1
2
3
| a = [1,2,3]
len(a)
# 3
|
1
2
3
4
5
6
7
8
9
10
11
12
| a = [1,2,3]
del a[1]
# a = [1,3]
a.remove(3)
# a = [1,2]
# remove(item)
# 첫 번째로 나오는 item 삭제
a.pop()
# a = [1,2]
# pop(index)
# index 위치의 원소를 삭제하고 값을 반환
# index를 비워두면 가장 마지막 원소를 삭제하고 반환
|
1
2
3
4
5
6
| a = [1,2,3]
a.append(4)
# a = [1,2,3,4]
a.insert(1, 4)
# a = [1,4,2,3]
# insert(index,value)
|
1
2
3
4
5
6
7
8
| a[x:y]
# x <= a < y
a[x:]
# x <= a < len(a)
a[:y]
# 0 <= a < y
a[:]
# 0 <= a < len(a)
|
1
2
3
| a = [1,3,2]
a.sort()
# a = [1,2,3]
|
1
2
3
| a = [1,2,3]
a.reverse()
# a = [3,2,1]
|
1
2
3
4
5
| a = [1,2,3]
a.index(3)
# 2
a.index(1)
# 0
|
1
2
3
| a = [1,2,3,1]
a.count(1)
# 2
|
1
2
3
4
5
6
| a = [1,2,3]
b = [4,5]
a.extend(b)
# a = [1,2,3,4,5]
a += b
# a = [1,2,3,4,5]
|
Tuple
값의 변경이 불가능하다는 점을 제외하면 리스트와 동일
튜플의 요소는 한번 지정하면 지우거나 변경이 불가능
1
2
3
| t1 = ()
t2 = (1,2)
t3 = 1,2
|
1
2
3
4
5
6
| t1 = (1,2)
t2 = (3,4)
t1 + t2
# (1,2,3,4)
t1 * 3
# (1,2,1,2,1,2)
|
Dictionary
key 값에는 변하는 값을 쓸 수 없음
ex) list 사용불가, tuple은 사용가능
1
2
3
| dic1 = {}
dic2 = {1:'a', 2:'b'}
# {key1:value1, key2:value2, ...}
|
1
2
3
| dic = {1:'a'}
dic[2] = 'b'
# dic = {1:'a', 2:'b'}
|
1
2
3
| dic = {1:'a', 2:'b'}
del dic[1]
# dic = {1:'a'}
|
1
2
3
4
5
6
7
8
| dic = {1:'a', 2:'b'}
dic[1]
dic.get(1)
# 'a'
dic = {'a':'apple', 'b':'banana'}
dic['a']
dic.get('a')
# 'apple'
|
[] 를 사용하면 존재하지 않는 키를 가져올 경우 오류 발생,
get() 을 사용하면 None 반환
key 값이 없는 경우 default 값을 반환하게 할 수 있다.
a.get(key, default)
와 같이 사용하면 된다.
1
2
3
4
5
6
7
8
9
10
| dic = {1:'a', 2:'b', 3:'c', 4:'d'}
dic.key()
# key List
# [1,2,3,4]
dic.values()
# value List
# ['a','b','c','d']
dic.items()
# key, value List
# [(1, 'a'), (2, 'b'), (3, 'c'), (4, 'd')]
|
세 가지 모두 수행 결과로 리스트를 얻지만, 기본 리스트의 append, insert, pop, remove, sort 함수는 수행할 수 없음
이 경우 list(dic.key())
를 이용해 리스트로 변환하여 사용하면 됨
1
2
3
4
5
| dic = {1:'a',2:'b',3:'c'}
1 in dic
# True
5 in dic
# False
|
Set
집합은 중복을 허용하지 않고, 순서가 없다.
1
2
3
4
| s1 = set([1,2,3])
# s1 = {1,2,3}
s1 = set("hello")
# s1 = {'e', 'h', 'l', 'o'}
|
1
2
3
4
5
6
7
| s1 = set([1,2,3])
l1 = list(s1)
l1[0]
# 1
t1 = tuple(s1)
t1[0]
# 1
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| s1 = set([1,2,3,4])
s2 = set([3,4,5,6])
# 교집합
s1 & s2
s1.intersection(s2)
s2.intersection(s1)
# {3,4}
# 합집합
s1 | s2
s1.union(s2)
s2.union(s1)
# {1,2,3,4,5,6}
# 차집합
s1 - s2
s1.difference(s2)
# {1,2}
s2 - s1
s2.difference(s1)
# {5,6}
|
1
2
3
4
5
| s1 = set([1,2,3])
s1.add(4)
# s1 = {1,2,3,4}
s1.update([3,4,5])
# s1 = {1,2,3,4,5}
|
1
2
3
| s1 = set([1,2,3])
s1.remove(2)
# s1 = {1,3}
|