2016년 7월 3일 일요일

파이썬 딕셔너리를 정렬하는 방법 (값 또는 키)

파이썬에서 dictionary를 정렬하는 방법

보통 sorted 명령을 사용하면 키를 이용해서 정렬이  됩니다.


보통 아래와 같이 key를 사용해서 정렬을 하는데


x = {1: 'a', 3: 'd', 4: 'c', 2: 'b', 0: 'e'}

sorted_list = sorted(x)


>>> for y in sorted(x):
...   print (y,x[y])
...
0 e
1 a
2 b
3 d
4 c

값을 이용해서 정렬을 할경우 3아래와 같이 하면 됩니다.

items() 키, 값을 모두 받아서, key 부분에는 원래 함수를 지정해주면되는데,

lambda 함수를 이용해서, 값을 이용한 정리,

>>> for y,v in sorted(x.items(), key =lambda x:x[1]):
...   print (y,v)
... 
1 a
2 b
4 c
3 d
0 e

이상입니다

2016년 7월 2일 토요일

리눅스에서 pdf 보기 명령

pdf 보는 명령어는 많이 있지만, 간단히 evince라는 명령어를 이용, 현재 최신 버젼에는 대부분 깔려 있음. pdf 합치는 용도로는 pdfchain을 사용, pdfmod는 책갈피를 수정함. sudo apt-get install pdfchain pdfmod

리눅스에서 파일 합치기,

아래와 같이 cat명령어를 사용하여 간단하게 병합. cat file1.txt file2.txt > file_all.txt redirect를 이용해서 간단히 병합, 파일이 그 이상일경우 cat file3.txt >> file_all.txt 해서 추가 > 와 >> 의 차이는 >는 처음부터, >>는 파일이 존재할 경우 추가해서의 의미 cat 대신에 more를 사용해도 비슷함.

파이썬 정규표현식

파이썬의 정규표현식 re 패키지가 있다.


import re 를 이용해서 정규표현식을 불러오며,

보통 자주 사용하는 것들은 아래와 같다.


자주사용하는 패턴

re.match(pattern, string) - 패턴이 완전히 매치되는경우

re.search(pattern, string) - 첫번째 것만 찾을때

re.sub(pattern, substitute, string) - 특정패턴을 substitude로 교체

re.findall(pattern, string) - 해당되는 모든 경우를 찾아서, list 로 전달,

re.finditer(pattern, string) - 해당되는 모든 경우를 찾아서, iterator로 치환,


컴파일을 활용

정규표현식 자체가 리소스를 많이 잡아 먹는 방식이기때문에,


p = re.compile(pattern) 으로 컴파일을 미리한후

p.match(), p.search() 등등을 활용 하는 방법도 존재함.