티스토리 뷰
파이썬의 기본이긴 하지만 나중에 데이터 분석할 때 유용하게 쓰일 수 있는 문법들이라서..
카테고리도 python에 들어가야 하지만 이번 공모전때문에 공부한 것이므로 여기에다가 쓰자.
나중에 문법쓸 때 내 블로그와서 보기..
- List comprehensions
기존의 list를 사용하여 간단히 다른 list를 만드는 기법
result = [i for i in range(10)]
print(result)
#[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
result = [i for i in range(10) if i % 2 == 0]
print(result)
#[0, 2, 4, 6, 8]
- Enumerate
#i에는 인덱스 v는 value값
for i, v in enumerate(['tic','tac','toe']):
print(i, v)
#0 tic
#1 tac
#2 toe
#list의 있는 index와 값을 unpacking하여 list로 저장
mylist = ["a","b","c"]
re_mylist=list(enumerate(mylist))
print(re_mylist)
#[(0, 'a'), (1, 'b'), (2, 'c')]
#텍스트 짤라서 인덱스 번호 붙여주기
dict1={i:j for i,j in enumerate('test1 test2 test3'.split())}
print(dict1)
#{0: 'test1', 1: 'test2', 2: 'test3'}
- Zip
alist = ['a1', 'a2', 'a3']
blist = ['b1', 'b2', 'b3']
for i, j in zip(alist, blist):
print(i,j)
"""
결과값
a1 b1
a2 b2
a3 b3
"""
list_zip = [sum(x) for x in zip((1,2,3), (10,20,30), (100, 200, 300))]
print(list_zip)
#[111, 222, 333]
#Enumerate & zip
for i, (a,b) in enumerate(zip(alist, blist)):
print(i, a, b)
"""
결과값
0 a1 b1
1 a2 b2
2 a3 b3
"""
- Asterisk
#흔히 알고 있는 *를 의미함
#한번에 여러게의 변수를 넘겨줄때 사용
def asterisk_test(a, *args):
print(a, args)
print(type(args))
asterisk_test(1,2,3,4,5,6)
#1 (2, 3, 4, 5, 6)
#<class 'tuple'>
def asterisk_test2(a, **kargs):
print(a, kargs)
print(type(kargs))
asterisk_test2(1, b = 2,c = 3,d = 4,e = 5,f = 6)
#1 {'b': 2, 'c': 3, 'd': 4, 'e': 5, 'f': 6}
#<class 'dict'>
#unpacking a container
def asterisk_test3(a, args):
print(a, *args)
print(type(args))
asterisk_test3(1, (2,3,4,5,6))
#1 2 3 4 5 6
#dict 타입을 풀어줘서 넣기 ** 두개!
def asterisk_test4(a, b, c, d):
print(a, b, c, d)
data = {"b":1, "c":2, "d":3}
asterisk_test4(10, **data)
#10 1 2 3
for data in zip(*([1,2], [3,4], [5,6])):
print(data)
#(1, 3, 5)
#(2, 4, 6)
댓글