python 5가지 실용적인 기교
1. 사전 유도(Dictionary comprehensions)와 집합 유도(Set comprehensions)
대부분의 파이썬 프로그래머들은 목록 유도 (list comprehensions) 를 알고 사용한 적이 있다.만약listcomprehensions 개념에 익숙하지 않다면, 하나의listcomprehension은 더욱 간단명료하고 간결하게list를 만드는 방법이다.
>>> some_list = [1, 2, 3, 4, 5]
>>> another_list = [ x + 1 for x in some_list ]
>>> another_list
[2, 3, 4, 5, 6]
python 3.1(심지어 Python 2.7)부터 우리는 같은 문법으로 집합과 사전표를 만들 수 있다.
>>> # Set Comprehensions
>>> some_list = [1, 2, 3, 4, 5, 2, 5, 1, 4, 8]
>>> even_set = { x for x in some_list if x % 2 == 0 }
>>> even_set
set([8, 2, 4])
>>> # Dict Comprehensions
>>> d = { x: x % 2 == 0 for x in range(1, 11) }
>>> d
{1: False, 2: True, 3: False, 4: True, 5: False, 6: True, 7: False, 8: True, 9: False, 10: True}
첫 번째 예에서 우리는 some_로list를 바탕으로 중복되지 않는 원소를 가진 집합을 만들었고 집합에는 짝수만 포함되어 있습니다.사전표의 예에서 우리는 키가 중복되지 않는 1부터 10 사이의 정수를 만들었고value는 부울형으로 키가 짝수인지 아닌지를 표시하는 데 사용되었다.여기서 또 하나 주의할 만한 것은 집합된 자면량 표현법이다.우리는 간단하게 이런 방법으로 집합을 만들 수 있다.
>>> my_set = {1, 2, 1, 2, 3, 4}
>>> my_set
set([1, 2, 3, 4])
내장 함수 set () 를 사용할 필요가 없습니다.2. 카운터를 사용하여 객체 개수 계산
이것은 듣기에는 명백하지만 자주 잊혀진다.대부분의 프로그래머들에게 하나의 물건을 세는 것은 매우 흔히 볼 수 있는 임무이며, 대다수 상황에서는 결코 도전적인 일이 아니다. 여기에는 몇 가지 방법이 있다. 이런 임무를 더욱 간단하게 완성할 수 있다.
Python의collections 클래스 라이브러리에 내장된dict 클래스의 하위 클래스가 있는데 이런 일을 전문적으로 하는 것입니다.
>>> from collections import Counter
>>> c = Counter( hello world )
>>> c
Counter({ l : 3, o : 2, : 1, e : 1, d : 1, h : 1, r : 1, w : 1})
>>> c.most_common(2)
[( l , 3), ( o , 2)]
3. JSON 예쁘게 프린트하기JSON은 매우 좋은 데이터 서열화 형식으로 현재의 각종 API와 웹 서비스에 대량으로 사용되고 있다.python에 내장된 json 처리를 사용하면 JSON 직렬이 일정한 가독성을 가지게 할 수 있지만, 대형 데이터를 만났을 때, 이것은 매우 길고 연속적인 한 줄로 표현되었을 때, 사람의 육안은 보기 어렵다.
JSON 데이터가 더욱 우호적으로 표현될 수 있도록 indent 파라미터를 사용하여 예쁜 JSON을 출력할 수 있습니다.콘솔에서 대화식으로 프로그래밍하거나 로그를 작성할 때 특히 유용합니다.
>>> import json
>>> print(json.dumps(data)) # No indention
{"status": "OK", "count": 2, "results": [{"age": 27, "name": "Oz", "lactose_intolerant": true}, {"age": 29, "name": "Joe", "lactose_intolerant": false}]}
>>> print(json.dumps(data, indent=2)) # With indention
{
"status": "OK",
"count": 2,
"results": [
{
"age": 27,
"name": "Oz",
"lactose_intolerant": true
},
{
"age": 29,
"name": "Joe",
"lactose_intolerant": false
}
]
}
마찬가지로 내장된 pprint 모듈을 사용하면 다른 모든 것을 출력할 수 있습니다.4. 일회적이고 빠른 소형 웹 서비스 만들기
때때로 우리는 두 기계나 서비스 사이에서 간편하고 기초적인 RPC 같은 상호작용을 해야 한다.우리는 간단한 방식으로 B 프로그램을 사용하여 A 프로그램의 한 방법을 호출하기를 희망한다. 때로는 다른 기계에 있다.내부에서만 사용됩니다.
나는 여기서 소개한 방법을 비내부적이고 일회적인 프로그래밍에 사용하는 것을 장려하지 않는다.우리는 이런 일을 하기 위해 XML-RPC라는 프로토콜을 사용할 수 있다.
다음은 SimpleXMLRPCServer 모듈을 사용하여 빠른 파일 읽기 서버를 구축하는 예입니다.
from SimpleXMLRPCServer import SimpleXMLRPCServer
def file_reader(file_name):
with open(file_name, r ) as f:
return f.read()
server = SimpleXMLRPCServer(( localhost , 8000))
server.register_introspection_functions()
server.register_function(file_reader)
server.serve_forever()
클라이언트
import xmlrpclib
proxy = xmlrpclib.ServerProxy( http://localhost:8000/ )
proxy.file_reader( /tmp/secret.txt )
우리는 이렇게 하면 원격 파일 읽기 도구를 얻을 수 있고 외부의 의존도 없고 코드 몇 마디만 있다. (물론 어떠한 안전 조치도 없기 때문에 집에서만 이렇게 할 수 있다.)5. 파이썬의 신기한 소스 커뮤니티
여기서 내가 언급한 몇 가지 물건은 모두 Python 표준 라이브러리에 있는 것이다. 만약 당신이 Python을 설치했다면, 당신은 이미 이렇게 사용할 수 있을 것이다.많은 다른 유형의 임무에 대해 이곳에는 대량의 지역 사회가 관리하는 제3자 라이브러리가 있어 사용할 수 있다.
다음 목록은 내가 생각하기에 유용하고 건장한 개원 라이브러리의 필수 조건이다.
네, 소스 라이브러리는 반드시...
이상은python 5개의 실용적인 기교에 대한 상세한 내용입니다. 더 많은python 실용적인 기교에 대한 자료는 저희 다른 관련 글에 주목하세요!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.