Python 언어의 꼭 봐야 할 기능과 기술 30가지(2)
배우기 시작하면서Python 자주 사용하는 "트릭"을 유지하기로 했습니다.” "멋지네요!"라고 생각하게 만드는 단락을 볼 때마다. ” 코드(예를 들어 StackOverflow, 오픈 소스 소프트웨어 등)를 이해할 때까지 시도해 본 다음 목록에 추가합니다. 이 게시물은 목록의 일부를 정리했습니다. 숙련된 Python 프로그래머라면 이미 일부를 알고 있을 수도 있지만 Python을 배우기 시작한 C, C++ 또는 Java 프로그래머라면 여전히 모르는 부분이 있을 수 있습니다. 🎜>프로그래밍하면 나처럼 매우 유용하다는 것을 알게 될 것입니다.
각각의 트릭이나 언어 기능은 너무 많은 설명 없이 예제를 통해서만 확인할 수 있습니다. 예는 명확하지만 익숙함에 따라 일부는 여전히 복잡해 보일 수 있으므로 예를 살펴본 후에도 명확하지 않은 경우 제목을 통해 Google을 통해 자세한 정보를 얻을 수 있습니다. 목록은 일반적으로 사용되는 언어 기능과 기술을 앞에 두고 난이도별로 정렬되어 있습니다. 1.15 단순 목록:>>> [3, 4], [5, 6]] >>>목록(itertools.chain.from_iterable(a))
[1, 2, 3, 4, 5, 6] >>> sum(a, []) [ 1, 2, 3, 4, 5, 6] >>> [x [1, 2, 3, 4, 5, 6] >>> a = [[[1, 2], [3, 4]] , [[5, 6], [7, 8]]] >>> [x for l1 in a for l2 in l1 for x in l2] [1 , 2, 3, 4, 5 , 6, 7, 8] >>> a = [1, 2, [3, 4], [[5, 6], [7, 8] ]] >>> flatten = 람다 x: [y for l in x for y in flatten(l)]if type( x) is list else [x]
>>> flatten(a) [1, 2, 3, 4, 5, 6, 7 , 8] 참고: Python 문서에 따르면 itertools.chain.from_iterable이 선호됩니다. 1.16 >>> g = (x ** 2 for x in x범위 (10))
>>다음(g)
0 >>> 1 >>> 다음(g) 4 >>> 다음(g) 9 >>> sum(x ** 3 for x in xrange(10)) 2025 >>> x ** 3 for x in xrange(10) if x % 3 == 1) 408 1.17 사전 반복 >>> x: x ** 2(5)} >>>m {0:0, 1:1, 2:4, 3:9, 4: 16} >>> m = {x: 'A' + str(x) for x in range(10)} > ;>>m {0: 'A0', 1: 'A1', 2: 'A2', 3: 'A3', 4: 'A4', 5: 'A5' , 6 : 'A6', 7: 'A7', 8: 'A8', 9: 'A9'} 1.18 사전을 반복하여 사전을 뒤집습니다 >>> = {'a': 1, 'b': 2, 'c': 3, 'd': 4} >>>m {'d': 4, 'a': 1, 'b': 2, 'c': 3} >>> {v: k for k, v in m.items()}{1: 'a', 2: 'b', 3: 'c', 4: 'd'} 1.19 명명된 시퀀스(collections.namedtuple)> ; >> Point = collections.namedtuple('Point', ['x', 'y']) >>> p = Point(x=1.0, y=2.0) >>>p 포인트(x=1.0, y=2.0) >>>p.x 1.0
>>> p.y 2.0 1.20
이름이 지정된 목록의 상속:
>>> classPoint(collections.namedtuple('PointBase', ['x', 'y'])): ... 슬롯 = ()
... def add(self, other):
... return Point(x=self.x + other.x, y=self.y + other. y)
...
>>> p = 점(x=1.0, y=2.0)
>>> q = 점(x=2.0, y=3.0)
>>> p + q
점(x=3.0, y=5.0)
1.21 集合及集합操작
>>> A = {1, 2, 3, 3}
>>> A
세트([1, 2, 3])
>>> B = {3, 4, 5, 6, 7}
>>> B
세트([3, 4, 5, 6, 7])
>>> A | B
set([1, 2, 3, 4, 5, 6, 7])
>>> A & B
세트([3])
>>> A - B
set([1, 2])
>>> B - A
세트([4, 5, 6, 7])
>>> A ^ B
set([1, 2, 4, 5, 6, 7])
>>> (A ^ B) == ((A - B) | (B - A))
참
1.22 多중集及其操작(컬렉션.개수er )
>>> A = collections.Counter([1, 2, 2])
>>> B = collections.Counter([2, 2, 3])
>>> A
카운터({2:2, 1:1})
>>> B
카운터({2:2, 3:1})
>>> A | B
카운터({2:2, 1:1, 3:1})
>>> A & B
카운터({2: 2})
>>> A + B
카운터({2:4, 1:1, 3:1})
>>> A - B
카운터({1: 1})
>>> B - A
카운터({3: 1})
1.23 迭代中最常见的元素 (collections.Counter)
>>> A = collections.Counter([1, 1, 2, 2, 3, 3, 3, 3, 4, 5, 6, 7])
>>> A
카운터({3:4, 1:2, 2:2, 4:1, 5:1, 6:1, 7:1})
>>> ; A.most_common(1)
[(3, 4)]
>>> A.most_common(3)
[(3, 4), (1, 2), (2, 2)]
1.24 双端队列 (컬렉션. 데크)
>>> Q = collections.deque()
>>> Q.app종료(1)
>>> Q.추가왼쪽(2)
>>> Q.extend([3, 4])
>>> Q.extendleft([5, 6])
>>> Q
deque([6, 5, 2, 1, 3, 4])
>>> Q.pop()
4
>>> Q.popleft()
6
>>> Q
deque([5, 2, 1, 3])
>>> Q.rotate(3)
>>> Q
deque([2, 1, 3, 5])
>>> Q.rotate(-3)
>>> Q
deque([5, 2, 1, 3])
1.25 有最大长島的双端队列 (collections.deque)
>>> last_ three = collections.deque(maxlen=3)
>>> for i in xrange(10):
... last_ three.append(i)
... 인쇄 ', '.join(str(x) for x의 마지막_3)
...
0
0, 1
0, 1, 2
1, 2, 3
2, 3, 4
3, 4, 5
4, 5, 6
5, 6, 7
6, 7, 8
7, 8, 9
1.26 字典排序(컬렉션.OrderedDict)
>>> m = dict((str(x), x) for x in range(10))
>>> print ', '.join(m.keys())
1, 0, 3, 2, 5, 4, 7, 6, 9, 8
>>>> m = collections.OrderedDict((str(x), x) for x in range(10))
>>> print ', '.join(m.keys())
0, 1, 2, 3, 4, 5, 6, 7, 8, 9
>>> m = collections.OrderedDict((str(x), x) for x in range(10, 0, -1))
>>> print ', '.join(m.keys())
10, 9, 8, 7, 6, 5, 4, 3, 2, 1
1.27 缺省字典(컬렉션 .defaultdict)
>>> m = dict()
>>> m['a']
추적(최근 c모두 마지막):
KeyError: 'a'
>>>
>>> m = collections.defaultdict(int)
>>> m['a']
0
>>> m['b']
0
>>> m = collections.defaultdict(str)
>>> m['a']
''
>>> m['b'] += 'a'
>>> m['b']
'a'
>>> m = collections.defaultdict(lambda: '[기본값]')
>>> m['a']
'[기본값]'
>>> m['b']
'[기본값]'
1.28 用缺省字典表示简单的树
>>> import json
>>> tree = 람다: collections.defaultdict(tree)
>>> root = tree()
>>> root['menu']['id'] = '파일'
>>> root['menu']['value'] = '파일'
>>> root['menu']['menuitems']['new']['value'] = '새로 만들기'
>>> root['menu']['menuitems']['new']['onclick'] = 'new();'
>>> root['menu']['menuitems']['open']['value'] = '열기'
>>> root['menu']['menuitems']['open']['onclick'] = 'open();'
>>> root['menu']['menuitems']['close']['value'] = '닫기'
>>> root['menu']['menuitems']['close']['onclick'] = 'close();'
>>> print json.dumps(root, sort_keys=True, indent=4, 구분 기호=(',', ': '))
{
"메뉴" : {
"id": "file",
"menuitems": {
"close": {
"onclick" : "닫기 ();",
"값": "닫기"
},
"새 항목": {
"onclick": "새로 만들기( );",
"값": "새로 만들기"
},
"열기": {
"onclick": "열기() ;",
"value": "열기"
}
},
"value": "파일"
}
}
(到https://gist.github.com/hrldcpr/2012250查看详情)
1.29 映射对象到唯一的序列数 (collections.defaultdict)
>>> itertools, 컬렉션 가져오기
>>> value_to_numeric_map = collections.defaultdict(itertools.count().next)
>>> value_to_numeric_map['a']
0
>>> value_to_numeric_map['b']
1
>>> value_to_numeric_map['c']
2
>>> value_to_numeric_map['a']
0
>>> value_to_numeric_map['b']
1
위 내용은 Python 언어의 꼭 봐야 할 기능과 기술 30가지(2)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











이 기사는 데비안 시스템에서 Apache Logs를 분석하여 웹 사이트 성능을 향상시키는 방법을 설명합니다. 1. 로그 분석 기본 사항 Apache Log는 IP 주소, 타임 스탬프, 요청 URL, HTTP 메소드 및 응답 코드를 포함한 모든 HTTP 요청의 자세한 정보를 기록합니다. 데비안 시스템 에서이 로그는 일반적으로 /var/log/apache2/access.log 및 /var/log/apache2/error.log 디렉토리에 있습니다. 로그 구조를 이해하는 것은 효과적인 분석의 첫 번째 단계입니다. 2. 로그 분석 도구 다양한 도구를 사용하여 Apache 로그를 분석 할 수 있습니다.

Python은 게임 및 GUI 개발에서 탁월합니다. 1) 게임 개발은 Pygame을 사용하여 드로잉, 오디오 및 기타 기능을 제공하며 2D 게임을 만드는 데 적합합니다. 2) GUI 개발은 Tkinter 또는 PYQT를 선택할 수 있습니다. Tkinter는 간단하고 사용하기 쉽고 PYQT는 풍부한 기능을 가지고 있으며 전문 개발에 적합합니다.

PHP와 Python은 각각 고유 한 장점이 있으며 프로젝트 요구 사항에 따라 선택합니다. 1.PHP는 웹 개발, 특히 웹 사이트의 빠른 개발 및 유지 보수에 적합합니다. 2. Python은 간결한 구문을 가진 데이터 과학, 기계 학습 및 인공 지능에 적합하며 초보자에게 적합합니다.

이 기사에서는 DDOS 공격 탐지 방법에 대해 설명합니다. "Debiansniffer"의 직접적인 적용 사례는 발견되지 않았지만 DDOS 공격 탐지에 다음과 같은 방법을 사용할 수 있습니다. 효과적인 DDOS 공격 탐지 기술 : 트래픽 분석을 기반으로 한 탐지 : 갑작스런 트래픽 성장, 특정 포트에서의 연결 감지 등의 비정상적인 네트워크 트래픽 패턴을 모니터링하여 DDOS 공격을 식별합니다. 예를 들어, Pyshark 및 Colorama 라이브러리와 결합 된 Python 스크립트는 실시간으로 네트워크 트래픽을 모니터링하고 경고를 발행 할 수 있습니다. 통계 분석에 기반한 탐지 : 데이터와 같은 네트워크 트래픽의 통계적 특성을 분석하여

이 기사에서는 Debian 시스템에서 NginxSSL 인증서를 업데이트하는 방법에 대해 안내합니다. 1 단계 : CertBot을 먼저 설치하십시오. 시스템에 CERTBOT 및 PYTHON3-CERTBOT-NGINX 패키지가 설치되어 있는지 확인하십시오. 설치되지 않은 경우 다음 명령을 실행하십시오. sudoapt-getupdatesudoapt-getinstallcertbotpython3-certbot-nginx 2 단계 : 인증서 획득 및 구성 rectbot 명령을 사용하여 nginx를 획득하고 nginx를 구성하십시오.

데비안 시스템의 readdir 함수는 디렉토리 컨텐츠를 읽는 데 사용되는 시스템 호출이며 종종 C 프로그래밍에 사용됩니다. 이 기사에서는 ReadDir를 다른 도구와 통합하여 기능을 향상시키는 방법을 설명합니다. 방법 1 : C 언어 프로그램을 파이프 라인과 결합하고 먼저 C 프로그램을 작성하여 readDir 함수를 호출하고 결과를 출력하십시오.#포함#포함#포함#포함#includinTmain (intargc, char*argv []) {dir*dir; structdirent*entry; if (argc! = 2) {

제한된 시간에 Python 학습 효율을 극대화하려면 Python의 DateTime, Time 및 Schedule 모듈을 사용할 수 있습니다. 1. DateTime 모듈은 학습 시간을 기록하고 계획하는 데 사용됩니다. 2. 시간 모듈은 학습과 휴식 시간을 설정하는 데 도움이됩니다. 3. 일정 모듈은 주간 학습 작업을 자동으로 배열합니다.

데비안 시스템에서 HTTPS 서버를 구성하려면 필요한 소프트웨어 설치, SSL 인증서 생성 및 SSL 인증서를 사용하기 위해 웹 서버 (예 : Apache 또는 Nginx)를 구성하는 등 여러 단계가 포함됩니다. 다음은 Apacheweb 서버를 사용하고 있다고 가정하는 기본 안내서입니다. 1. 필요한 소프트웨어를 먼저 설치하고 시스템이 최신 상태인지 확인하고 Apache 및 OpenSSL을 설치하십시오 : Sudoaptupdatesudoaptupgradesudoaptinsta
