Python은 Reference counted 메모리 관리.
is는 referenced object 주고가 같은지 비교.
==는 값을 비교.
-1은 True다. find는 찾지 못하면 -1을 리턴한다. find 보다는 in을 쓰는게 좋다.
False로 처리되는 애들은 아래와 같다.
3항 연상 대신
is는 referenced object 주고가 같은지 비교.
==는 값을 비교.
-1은 True다. find는 찾지 못하면 -1을 리턴한다. find 보다는 in을 쓰는게 좋다.
f = filter(lambda n:'철' in n, data4) for n in f: print(n)
False로 처리되는 애들은 아래와 같다.
False | 불리언 | 거짓 |
None | None 유형 | 값 없음 |
0 | 정수 | 0 |
0.0 | 실수 | 0 |
0j | 복소수 | 0 |
'' | 문자열 | 빈 문자열 |
() | 튜플 | 빈 튜플 |
[] | 리스트 | 빈 리스트 |
{} | 집합 | 빈 집합 |
dict() | 사전 | 빈 사전 |
3항 연상 대신
rst = 100 if (a>0) else 200rst = (200, 100)[a>0] rst = {True:100, False:200}
리스트 -> Dictionarymy = [13, 23, 33] e = enumerate(my) print( dict(e)) my1 = [12, 22, 32] z = zip(my, my1) # key value list를 묶어서 dict 만들어 줌.print( dict(z))
리스트 항목 빈도 및 최빈도 추출import collectionsmy = [10, 10, 10, 20, 20,30] c = collections.Counter(my) print (c) print(c.most_common(3)) 순서 있는 딕셔너리 o = collections.OrderedDict() o['zz'] = 1o['bb'] = 20print (o) Deque q = collections.deque(maxlen=3) q.append(10) q.append(20) q.append(30) print (q) q.append(40) print(q) q.appendleft(90)배열 import array arr = array.array('i') arr.append(10) arr.append(20) arr.append(30) print(arr) arr.append(139065539) print (arr)
함수 가변 파라미터
# 튜플을 가변인자로 넘길 때는 *를 붙여준다. 받는 쪽에서는 tuple로 받는다.
def fb4(*ar) : for a in ar: print(a) fb4(10 ,20 , 30) fb4("aa", "bb")# 정의되지 않은 인자를 받고자 하면 **를 붙여준다. 받는 쪽에서는 dictionary로 받는다.
def fn5(**args): # 정의 되지 않은 인자 print(args) fn5(a=10, b=20, c=30) fn5(name="홍길동", age=20){'a': 10, 'b': 20, 'c': 30} {'name': '홍길동', 'age': 20}
d = {'name': "이순신", 'age':40}s = '%(name)s %(age)d' % datadef fn6(**args): print(args) fn6(**d) # 정의 되지 않은 인자로 dictionary를 넘길 때는 **를 붙여 준다.print('{name} {age}'.format(**data)
a = 10
b = 3.14
c = 'abc'
s = 'b {1} a {0} c{2}'.format(a, b, c) # 아래와 동치. 가변인자로 튜플 넘길 때는 * 붙여 준다.s = 'b {1} a {0} c{2}'.format(*(a, b, c))
print(s)
문자열 가운데 정렬
print("acb".center(30))
포멧에 정의되지 않은 인자를 주는 방식
s = '{aa}, {bb} {cc}'.format(aa =10, bb=20, cc=30) print(s)
# LGB Rule. 변수 찾기 우선 순위 : Local Global Built-ing = 10 # 글로벌 변수 임. def fn(): g = 100 # 로컬 변수 임. print(locals()) print(id(g)) fn() print(globals()) # 전역 변수 목록print('g=', g) print(id(g))str = 'korea'
n = str(n) # error. Global str이 Builtin str보다 우선 순위가 높아서 에러 발생.
# 글로벌 변수를 로컬에서 사용하는 방법
g = 10
def fn(): global g g = 100 fn() print(g) # 100 출력. global g 때문에 로컬에서도 global 변수 사용
def fn(): my = [10, 20, 30] # 리스트는 stack이 아닌 heap에 생성됨. print(id(my)) return my rst = fn() print(rst, id(rst)) 4859544[10, 20, 30] 4859544
switch 대치
def fn1(): print("fn1") def fn2(): print('fn2') menu = {1:fn1, 2:fn2} menu[1]()
dictionary에 get을 사용하면 default 값을 정해줄 수 있다.
d = {10:"A", 9:"A", 8:"B", 7:"C", 6:"D"}
print (d.get(n//10, "F"))
Tuple은 ()로 만든다.
다만, (10)과 같이 1항은 그대로는 숫자다.
때문에 (10,)와 같이 ,를 추가해줘야 한다.
댓글 없음:
댓글 쓰기