ホームページ バックエンド開発 Python チュートリアル 必見のPython言語の30の特徴とスキル (2)

必見のPython言語の30の特徴とスキル (2)

Mar 17, 2017 pm 04:45 PM
python 言語

httpPython を学習し始めて以来、頻繁に使用する「トリック」のリストを維持することにしました。 「すごい、これはうまくいく!」と思った一節。 ” コード (例として、StackOverflow、オープンソース ソフトウェアなど) を理解するまで試してから、リストに追加します。経験豊富な方向けの記事です。 Python プログラマーの場合は、すでに知っているものもあれば、Python を学習している、または学習を始めたばかりの C、C++、または Java プログラマーであれば、まだ知らないことがあるかもしれません。それらの多くは私と同様に非常に便利です それぞれのトリックや言語の機能は、過度の説明なしで例を通してのみ確認できます。ただし、例の一部は、あなたの慣れによっては、まだ少し複雑に見えるかもしれません。例を見てよくわからない場合は、Google で詳細を確認するのに十分な情報がタイトルに表示されます

リストは、一般的に使用される言語の機能とテクニックが最初に並べられています

1.15 フラット リスト:

。 >>> a = [[1, 2], [3, 4], [5, 6]]

>>

list

(itertools.chain.from_iterable(a))

[1, 2, 3, 4, 5, 6]

>sum(a, [])

[1, 2, 3, 4, 5, 6]

> ;>> [x

l in a for x in l]

[1, 2, 3, 4, 5, 6] > = [[[1, 2], [3, 4]], [[5, 6], [7, 8]]]

>>> ; [l1 の l1 の l2 の x 2 の x]

[ 1、2、3、4、5、6、7、8]

>>> a = [1, 2, [3, 4], [[5, 6], [7, 8] ]]]

>>> flatten = lambda x: [y for l in x for y in flatten(l)]

if

type(x) はリスト

else

[x]

>> ;> flatten(a) [1, 2, 3, 4, 5, 6, 7, 8] 注: Python ドキュメントによれば、 itertools.chain.from_iterable が推奨されます。式

>>> g = (x ** 2 for x in x

range

(10))

>>>

0 >> ;> 次(g) >>> 次(g)

>>> x in xrange(10)) 2025

>>> sum(x ** 3 for x in xrange(10) if x % 3 == 1) 408

1.17 反復辞書

> ;>> m = {x: x ** 2 for x in range(5)}

>>> m

{0: 0, 1: 1, 2: 4, 3: 9, 4: 16}

>>> m = {x: 'A' + str (x) for x in range(10)}

>>> m

; A0'、1:'A1'、2:'A2'、3:'A3'、4:'A4'、5:'A5'、6:'A6'、7:'A7'、8:'A8' , 9: 'A9'}

1.18 辞書を反復して辞書を逆引きします

>>> m = {'a': 1, 'b': 2, 'c': 3, 'd': 4}

>>> m

{'d': 4, 'b': 2, 'c': 3}

>>> 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

Point(x=1.0, y=2.0)

>>> p.x

1.0

>>>, ['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

Point(x=3.0, y=5.0)

1.21 集合および集合操作

>>> A = {1, 2, 3, 3}

>>> A

set([1, 2, 3])

>>> B = {3, 4, 5, 6, 7}

>>> B

set([3, 4, 5, 6, 7])

>>>あ | B

set([1, 2, 3, 4, 5, 6, 7])

>>> A & B

set([3])

>>> A - B

set([1, 2])

>>> B - A

set([4, 5, 6, 7])

>>> A ^ B

set([1, 2, 4, 5, 6, 7])

>>> (A ^ B) == ((A - B) | (B - A))

True

1.22 多重集合及びその操作 (collections.Counter)

>>> A = collections.Counter([1, 2, 2])

>>> B = collections.Counter([2, 2, 3])

>>> A

カウンター({2: 2, 1: 1})

>>> B

カウンター({2: 2, 3: 1})

>>>あ | 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

Counter({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 双端队列 (collections.deque)

>>> Q = collections.deque()

>>> Q.app終了(1)

>>> Q.appendleft(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.回転(3)

>>> Q

deque([2, 1, 3, 5])

>>> Q.回転(-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)

... print ', '.join(str(x) for x in last_three)

...

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 字典排序 (collections.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 缺字省典 (collections.defaultdict)

>> ;> m = dict()

>>> m['a']

トレースバック (最新の call 最後):

File ""、1 行目、<module> 内  

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 用缺省字典表示简单的树

>>> json

>>> をインポートします。 Tree = lambda: collections.defaultdict(tree)

>>> root =tree()

>>> root['menu']['id'] = 'file'

>>> root['メニュー']['値'] = 'ファイル'

>>> root['menu']['menuitems']['new']['value'] = 'New'

>>> 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, separators=(',', ': '))

{

"menu": {

"id": "file",

"menuitems": {

"close": {

"onclick": "close();",

"value": "閉じる"

},

"新規": {

" onclick": "new();",

"value": "New"

},

"open": {

"onclick": open();",

"値": " 「

}

}、

"value": "File"

}

(https://gist.github.com/hrldcpr/201 2250查看详情)

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 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHPおよびPython:コードの例と比較 PHPおよびPython:コードの例と比較 Apr 15, 2025 am 12:07 AM

PHPとPythonには独自の利点と短所があり、選択はプロジェクトのニーズと個人的な好みに依存します。 1.PHPは、大規模なWebアプリケーションの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンスと機械学習の分野を支配しています。

CentosでPytorchモデルを訓練する方法 CentosでPytorchモデルを訓練する方法 Apr 14, 2025 pm 03:03 PM

CentOSシステムでのPytorchモデルの効率的なトレーニングには手順が必要であり、この記事では詳細なガイドが提供されます。 1。環境の準備:Pythonおよび依存関係のインストール:Centosシステムは通常Pythonをプリインストールしますが、バージョンは古い場合があります。 YumまたはDNFを使用してPython 3をインストールし、PIP:sudoyumupdatepython3(またはsudodnfupdatepython3)、pip3install-upgradepipをアップグレードすることをお勧めします。 cuda and cudnn(GPU加速):nvidiagpuを使用する場合は、cudatoolをインストールする必要があります

CentosのPytorchのGPUサポートはどのようにサポートされていますか CentosのPytorchのGPUサポートはどのようにサポートされていますか Apr 14, 2025 pm 06:48 PM

Pytorch GPUアクセラレーションを有効にすることで、CentOSシステムでは、PytorchのCUDA、CUDNN、およびGPUバージョンのインストールが必要です。次の手順では、プロセスをガイドします。CUDAおよびCUDNNのインストールでは、CUDAバージョンの互換性が決定されます。NVIDIA-SMIコマンドを使用して、NVIDIAグラフィックスカードでサポートされているCUDAバージョンを表示します。たとえば、MX450グラフィックカードはCUDA11.1以上をサポートする場合があります。 cudatoolkitのダウンロードとインストール:nvidiacudatoolkitの公式Webサイトにアクセスし、グラフィックカードでサポートされている最高のCUDAバージョンに従って、対応するバージョンをダウンロードしてインストールします。 cudnnライブラリをインストールする:

Dockerの原則の詳細な説明 Dockerの原則の詳細な説明 Apr 14, 2025 pm 11:57 PM

DockerはLinuxカーネル機能を使用して、効率的で孤立したアプリケーションランニング環境を提供します。その作業原則は次のとおりです。1。ミラーは、アプリケーションを実行するために必要なすべてを含む読み取り専用テンプレートとして使用されます。 2。ユニオンファイルシステム(UnionFS)は、違いを保存するだけで、スペースを節約し、高速化する複数のファイルシステムをスタックします。 3.デーモンはミラーとコンテナを管理し、クライアントはそれらをインタラクションに使用します。 4。名前空間とcgroupsは、コンテナの分離とリソースの制限を実装します。 5.複数のネットワークモードは、コンテナの相互接続をサポートします。これらのコア概念を理解することによってのみ、Dockerをよりよく利用できます。

Python vs. JavaScript:コミュニティ、ライブラリ、リソース Python vs. JavaScript:コミュニティ、ライブラリ、リソース Apr 15, 2025 am 12:16 AM

PythonとJavaScriptには、コミュニティ、ライブラリ、リソースの観点から、独自の利点と短所があります。 1)Pythonコミュニティはフレンドリーで初心者に適していますが、フロントエンドの開発リソースはJavaScriptほど豊富ではありません。 2)Pythonはデータサイエンスおよび機械学習ライブラリで強力ですが、JavaScriptはフロントエンド開発ライブラリとフレームワークで優れています。 3)どちらも豊富な学習リソースを持っていますが、Pythonは公式文書から始めるのに適していますが、JavaScriptはMDNWebDocsにより優れています。選択は、プロジェクトのニーズと個人的な関心に基づいている必要があります。

Centosの下でPytorchバージョンを選択する方法 Centosの下でPytorchバージョンを選択する方法 Apr 14, 2025 pm 02:51 PM

CentOSでPytorchバージョンを選択する場合、次の重要な要素を考慮する必要があります。1。CUDAバージョンの互換性GPUサポート:NVIDIA GPUを使用してGPU加速度を活用したい場合は、対応するCUDAバージョンをサポートするPytorchを選択する必要があります。 NVIDIA-SMIコマンドを実行することでサポートされているCUDAバージョンを表示できます。 CPUバージョン:GPUをお持ちでない場合、またはGPUを使用したくない場合は、PytorchのCPUバージョンを選択できます。 2。PythonバージョンPytorch

CentosでPytorchの分散トレーニングを操作する方法 CentosでPytorchの分散トレーニングを操作する方法 Apr 14, 2025 pm 06:36 PM

Pytorchの分散トレーニングでは、Centosシステムでトレーニングには次の手順が必要です。Pytorchのインストール:PythonとPipがCentosシステムにインストールされていることです。 CUDAバージョンに応じて、Pytorchの公式Webサイトから適切なインストールコマンドを入手してください。 CPUのみのトレーニングには、次のコマンドを使用できます。PipinstalltorchtorchtorchvisionTorchaudioGPUサポートが必要な場合は、CUDAとCUDNNの対応するバージョンがインストールされ、インストールに対応するPytorchバージョンを使用してください。分散環境構成:分散トレーニングには、通常、複数のマシンまたは単一マシンの複数GPUが必要です。場所

NginxをCentosにインストールする方法 NginxをCentosにインストールする方法 Apr 14, 2025 pm 08:06 PM

NGINXのインストールをインストールするには、次の手順に従う必要があります。開発ツール、PCRE-Devel、OpenSSL-Develなどの依存関係のインストール。 nginxソースコードパッケージをダウンロードし、それを解凍してコンパイルしてインストールし、/usr/local/nginxとしてインストールパスを指定します。 nginxユーザーとユーザーグループを作成し、アクセス許可を設定します。構成ファイルnginx.confを変更し、リスニングポートとドメイン名/IPアドレスを構成します。 nginxサービスを開始します。依存関係の問題、ポート競合、構成ファイルエラーなど、一般的なエラーに注意する必要があります。パフォーマンスの最適化は、キャッシュをオンにしたり、ワーカープロセスの数を調整するなど、特定の状況に応じて調整する必要があります。

See all articles