본문 바로가기

Programming66

python, print 시 문자열, 숫자, 자리수 조절하기 strs =[ 'abc','abcd','ab'] nums = [12,1342, 0.241, 2141.5312] for i in range(3): print('%s %f'%(strs[i],nums[i])) 이렇게 출력하면 이렇게 삐뚤삐뚤하게 정렬된다. 문자열.ljust(n) : n개의 문자공간중 좌측정렬 %10.3f : 10의 출력폭(소수점포함) 과 3개의 소수점정밀도 strs =[ 'abc','abcd','ab'] nums = [12,1342, 0.241, 2141.5312] for i in range(3): print('%s %9.3f'%(strs[i].ljust(5),nums[i])) 이렇게 출력하면 문자열 숫자 모두 줄 맞춰 출력된다. 2019. 8. 29.
python, 상위 n개 value의 index추출 a= np.random.rand(100) topid= sorted(range(len(a)),key= lambda i: a[i])[-10:] a[topid] 100개의 랜덤값 만들고 0,1,2 ... 99 의 index array을 만들어서, sorted함수로 해당 index의 a값에 따라서 정렬후 상위 10개 뽑아 내기 2019. 8. 19.
python, lambda, map, reduce 함수 사용법 lambda 임의의 간단한 함수 lambda(람다) 을 지정해서 사용가능 lambda 인자 : 해당인자로 연산 이러한 형식을 가짐 ex) fun1 = lambda x : x*x 는 def fun1(x): return x*x 와 같다. sorted 함수 내에 key 값으로 사용됨. A = [ 3,6,1, -10, 9] B = sorted(A,key=lambda x: x*x , reverse=True) 하면 B는 A의 각 원소의 제곱을 기준으로 내림차순정렬됨. map map은 map(함수,리스트) 의 형식을 취함. 리스트의 인자를 하나씩 함수에 넣고, 그 결과를 리턴함 list(map(lambda x : x**2 , range(5))) >> [0,1,4,9,16] reduce from functools im.. 2019. 8. 19.
python *(asterisk) 의 사용법 * 은 list나 tuple에 쓰면, list나 tuple같은 package을 unpack하는 작동을 한다. from functools import reduce tmp = [2, 3, 5, 7, 11, 13] def product(*numbers): p = reduce(lambda x, y: x * y, numbers) return p product(*tmp) # 30030 product(tmp) # [2, 3, 5, 7, 11, 13] product(*tmp)에서 product 함수내에 numbers는 (2,3,5,7,11,13) 이고, product(tmp)에서 numbers는 [(2,3,5,7,11,13)] 이다. 2019. 8. 19.