目次
はじめに
1. 非同期導出とは
2. 内包表記
3. 非同期内包表記
4. 導出待ち
ホームページ バックエンド開発 Python チュートリアル Python 非同期派生を適用する方法

Python 非同期派生を適用する方法

Apr 19, 2023 pm 03:07 PM
python

はじめに

「Python」というと、リスト内包表記や辞書内包表記などの内包表記が Python の機能です。

これは、他の多くの言語とは異なり、ループを実行する方法の 1 つです。

Asyncio を使用すると、非同期内包表記を使用できます。

非同期内包表記を使用すると、「async for」式を通じて非同期ジェネレーターと非同期イテレーターをトラバースできます。

1. 非同期導出とは

非同期導出は、従来の導出の非同期バージョンです。 Asyncio は、「async for」内包表記と「await」内包表記の 2 種類の非同期内包表記をサポートしています。

それぞれを検討する前に、まず古典的な導出を確認しましょう。

2. 内包表記

内包表記を使用すると、リスト、辞書、セットなどのデータ コレクションを簡潔な方法で作成できます。リスト内包表記を使用すると、新しいリスト式内の for 式からリストを作成できます。

...
# create a list using a list comprehension
result = [a*2 for a in range(100)]
ログイン後にコピー

は、辞書とセットを作成するための内包表記もサポートしています。

...
# create a dict using a comprehension
result = {a:i for a,i in zip(['a','b','c'],range(3))}
# create a set using a comprehension
result = {a for a in [1, 2, 3, 2, 3, 1, 5, 4]}
ログイン後にコピー

3. 非同期内包表記

非同期内包表記では、非同期反復可能オブジェクトで「async for」式を使用してリスト、セット、または辞書を作成できます。

...
# async list comprehension with an async iterator
result = [a async for a in aiterable]
ログイン後にコピー

これにより、必要に応じてコルーチンまたはタスクが作成およびスケジュールされ、その結果がリストに追加されます。

「async for」式はコルーチンとタスクでのみ使用できることを思い出してください。

また、非同期イテレータは待機可能なオブジェクトを生成するイテレータであることを思い出してください。

「async for」式を使用すると、呼び出し元は待機オブジェクトの非同期反復子を反復処理し、各オブジェクトから結果を取得できます。

内部的には、async for ループは必要に応じて待機可能な各ディスパッチ コルーチンを自動的に解析または待機します。

非同期ジェネレーターは、非同期イテレーターのメソッドを自動的に実装し、非同期導出にも使用できます。

...
# async list comprehension with an async generator
result = [a async for a in agenerator]
ログイン後にコピー

4. 導出待ち

「wait」式は、導出待ちと呼ばれるリスト、セット、または辞書内包表記でも使用できます。

非同期導出と同様、非同期コルーチンまたはタスクでのみ使用できます。

これにより、一連の待機可能なオブジェクトを一時停止して待機することにより、リストなどのデータ構造を作成できます。

...
# await list compression with a collection of awaitables
results = [await a for a in awaitables]
ログイン後にコピー

これは、各待機可能なオブジェクトを順番に待機することにより、結果のリストを作成します。

現在のコルーチンは、待機可能なオブジェクトを順番に実行するために一時停止されます。これは、asyncio.gather() を使用してオブジェクトを同時に実行するのとは異なり、速度が遅くなる可能性があります。

以上がPython 非同期派生を適用する方法の詳細内容です。詳細については、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)

2時間のPython計画:現実的なアプローチ 2時間のPython計画:現実的なアプローチ Apr 11, 2025 am 12:04 AM

2時間以内にPythonの基本的なプログラミングの概念とスキルを学ぶことができます。 1.変数とデータ型、2。マスターコントロールフロー(条件付きステートメントとループ)、3。機能の定義と使用を理解する4。

Redisキューの読み方 Redisキューの読み方 Apr 10, 2025 pm 10:12 PM

Redisのキューを読むには、キュー名を取得し、LPOPコマンドを使用して要素を読み、空のキューを処理する必要があります。特定の手順は次のとおりです。キュー名を取得します:「キュー:キュー」などの「キュー:」のプレフィックスで名前を付けます。 LPOPコマンドを使用します。キューのヘッドから要素を排出し、LPOP Queue:My-Queueなどの値を返します。空のキューの処理:キューが空の場合、LPOPはnilを返し、要素を読む前にキューが存在するかどうかを確認できます。

Redisのサーバーバージョンを表示する方法 Redisのサーバーバージョンを表示する方法 Apr 10, 2025 pm 01:27 PM

質問:Redisサーバーバージョンを表示する方法は?コマンドラインツールRedis-Cli-versionを使用して、接続されたサーバーのバージョンを表示します。 Info Serverコマンドを使用して、サーバーの内部バージョンを表示し、情報を解析および返信する必要があります。クラスター環境では、各ノードのバージョンの一貫性を確認し、スクリプトを使用して自動的にチェックできます。スクリプトを使用して、Pythonスクリプトとの接続やバージョン情報の印刷など、表示バージョンを自動化します。

Redisでサーバーを開始する方法 Redisでサーバーを開始する方法 Apr 10, 2025 pm 08:12 PM

Redisサーバーを起動する手順には、以下が含まれます。オペレーティングシステムに従ってRedisをインストールします。 Redis-Server(Linux/Macos)またはRedis-Server.exe(Windows)を介してRedisサービスを開始します。 Redis-Cli ping(Linux/macos)またはRedis-Cli.exePing(Windows)コマンドを使用して、サービスステータスを確認します。 Redis-Cli、Python、node.jsなどのRedisクライアントを使用して、サーバーにアクセスします。

ビジネスのニーズに応じてRedisメモリサイズを設定する方法は? ビジネスのニーズに応じてRedisメモリサイズを設定する方法は? Apr 10, 2025 pm 02:18 PM

Redisメモリサイズの設定は、次の要因を考慮する必要があります。データ量と成長傾向:保存されたデータのサイズと成長率を推定します。データ型:異なるタイプ(リスト、ハッシュなど)は異なるメモリを占めます。キャッシュポリシー:完全なキャッシュ、部分キャッシュ、フェージングポリシーは、メモリの使用に影響します。ビジネスピーク:トラフィックピークに対処するのに十分なメモリを残します。

Redisメモリ構成パラメーターとは何ですか? Redisメモリ構成パラメーターとは何ですか? Apr 10, 2025 pm 02:03 PM

** Redisメモリ構成のコアパラメーターはMaxMemoryであり、Redisが使用できるメモリの量を制限します。この制限を超えると、Redisは、Maxmemory-Policyに従って除去戦略を実行します。これには、次のようになります。その他の関連パラメーターには、Maxmemory-Samples(LRUサンプル量)、RDB圧縮が含まれます

メモリに対するRedisの持続性の影響は何ですか? メモリに対するRedisの持続性の影響は何ですか? Apr 10, 2025 pm 02:15 PM

Redis Persistenceは余分なメモリを取り、RDBはスナップショットを生成するときに一時的にメモリの使用量を増加させ、AOFはログを追加するときにメモリを取り上げ続けます。影響要因には、データのボリューム、永続性ポリシー、Redis構成が含まれます。影響を緩和するために、RDBスナップショットポリシーを合理的に構成し、AOF構成を最適化し、ハードウェアをアップグレードし、メモリの使用量を監視できます。さらに、パフォーマンスとデータセキュリティのバランスを見つけることが重要です。

Python vs. C:比較されたアプリケーションとユースケース Python vs. C:比較されたアプリケーションとユースケース Apr 12, 2025 am 12:01 AM

Pythonは、データサイエンス、Web開発、自動化タスクに適していますが、Cはシステムプログラミング、ゲーム開発、組み込みシステムに適しています。 Pythonは、そのシンプルさと強力なエコシステムで知られていますが、Cは高性能および基礎となる制御機能で知られています。

See all articles