티스토리 뷰

파이썬의 기본이긴 하지만 나중에 데이터 분석할 때 유용하게 쓰일 수 있는 문법들이라서..

카테고리도 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)
댓글
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31