Python開発時に注意すべき10のこと
ここでは、Python に関する 10 の役立つヒントとテクニックを紹介します。これらのいくつかは、初心者が言語を学習する際に犯しやすい間違いです。
注: 私たちは皆 Python 3 を使用していると仮定します
1. リスト内包表記
リストがあります: バッグ = [1, 2, 3, 4, 5]
ここで、すべての要素を次のように 2 倍にします: [2, 4, 6, 8, 10]
ほとんどの初心者は、おそらくこれまでの言語経験に基づいてこれを行うでしょう
bag = [1, 2, 3, 4, 5] for i in range(len(bag)): bag[i] = bag[i] * 2
しかし、もっと良い方法があります:
bag = [elem * 2 for elem in bag]
とてもシンプルですよね?これは Python リスト内包表記と呼ばれます。
Trey Hunner のチュートリアルをクリックして、リスト内包表記の詳細を参照してください。
2. リストをざっと確認します
上のリストを続けてください。
可能であればこれを避けてください:
bag = [1, 2, 3, 4, 5] for i in range(len(bag)): print(bag[i])
代わりに、次のようにする必要があります:
bag = [1, 2, 3, 4, 5] for i in bag: print(i)
x がリストの場合、その要素を反復処理できます。ほとんどの場合、各要素のインデックスは必要ありませんが、必要な場合は enumerate 関数を使用します。以下のようになります:
bag = [1, 2, 3, 4, 5] for index, element in enumerate(bag): print(index, element)
非常に直感的で明確です。
3.エレメント交換
Java または C 言語から Python に切り替える場合は、次のことに慣れているかもしれません:
a = 5 b = 10 # 交换 a 和 b tmp = a a = b b = tmp
しかし、Python はより自然で優れた方法を提供します。
りー十分ですよね?
4. 初期化リスト
10 個の整数 0 のリストが必要な場合は、まず次のことを考えます:
a = 5 b = 10 # 交换a 和 b a, b = b, a
別の方法を試してみましょう:
bag = [] for _ in range(10): bag.append(0)
ほら、なんてエレガントなんだろう。
注: リストにリストが含まれている場合、これを実行すると浅いコピーが生成されます。
例:
bag = [0] * 10
おっとっと!すべてのリストが変更されますが、最初のリストのみを変更したいと考えています。
変更します:
bag_of_bags = [[0]] * 5 # [[0], [0], [0], [0], [0]] bag_of_bags[0][0] = 1 # [[1], [1], [1], [1], [1]]
また覚えておいてください:
「時期尚早な最適化が諸悪の根源」
リストの初期化が必要かどうか自問してください。
5. 文字列を構築します
多くの場合、文字列を出力する必要があります。変数が多い場合は、次のことは避けてください:
bag_of_bags = [[0] for _ in range(5)] # [[0], [0], [0], [0], [0]] bag_of_bags[0][0] = 1 # [[1], [0], [0], [0], [0]]
うーん、これはどのくらい乱雑に見えますか?代わりに、優れた簡潔なメソッド .format を使用できます。
これを実行します:
rreeずっといい!
6. タプルを返す
Python では関数内で複数の要素を返すことができるため、作業が簡単になります。ただし、タプルを解凍するときに、一般的なエラーが発生します:
name = "Raymond" age = 22 born_in = "Oakland, CA" string = "Hello my name is " + name + "and I'm " + str(age) + " years old. I was born in " + born_in + "." print(string)
これは必須ではありません。次のように変更できます:
name = "Raymond" age = 22 born_in = "Oakland, CA" string = "Hello my name is {0} and I'm {1} years old. I was born in {2}.".format(name, age, born_in) print(string)
すべての要素を返す必要がある場合は、アンダースコア_を使用してください:
def binary(): return 0, 1 result = binary() zero = result[0] one = result[1]
とても効率的です!
7. 辞書にアクセスする
また、キーとペア (キー、値) を辞書に書き込むこともよくあります。
dict に存在しないキーにアクセスしようとすると、KeyError を回避するために次のようにしたくなるかもしれません:
def binary(): return 0, 1 zero, one = binary()
ただし、get() を使用する方が良い方法です。
りーもちろん、代わりに setdefault を使用することもできます。
これはより簡単ですが、より高価な方法です:
zero, _ = binary()
dict 導出も使用できます。
りーこれら 2 つのメソッドは、count が呼び出されるたびにリストを走査するため、コストがかかります。
8 図書館を利用する
既存のライブラリをインポートするだけで、本当にやりたいことが実現します。
前の例について引き続き話しますが、リスト内に数値が出現する回数をカウントする関数を構築しましょう。まあ、そのようなことができるライブラリはすでにあります。
りーライブラリを使用する理由:
コードは正しく、テスト済みです。
アルゴリズムが最適化されているため、より高速に実行できる可能性があります。
抽象化: 明確で十分に文書化されているため、まだ実装されていないことに集中できます。
最後に、すべてが揃ったので、車輪を再発明する必要はありません。
9. リストをスライス/ステップ実行します
この list[start:stop:step] のように、開始点と終了点を指定できます。リストの最初の 5 つの要素を取り出します:
countr = {} bag = [2, 3, 1, 2, 5, 6, 7, 9, 2, 7] for i in bag: if i in countr: countr[i] += 1 else: countr[i] = 1 for i in range(10): if i in countr: print("Count of {}: {}".format(i, countr[i])) else: print("Count of {}: {}".format(i, 0))
これはスライスです。停止点を 5 に指定すると、停止する前にリストから 5 つの要素が取り出されます。
最後の 5 つの要素をどうするか?
りー分かりませんか? -5 は、リストの末尾から 5 つの要素を取得することを意味します。
リスト内の要素間の間隔を操作したい場合は、次のようにします:
countr = {} bag = [2, 3, 1, 2, 5, 6, 7, 9, 2, 7] for i in bag: countr[i] = countr.get(i, 0) + 1 for i in range(10): print("Count of {}: {}".format(i, countr.get(i, 0)))
しかし、次のようにする必要があります:
bag = [2, 3, 1, 2, 5, 6, 7, 9, 2, 7] countr = dict([(num, bag.count(num)) for num in bag]) for i in range(10): print("Count of {}: {}".format(i, countr.get(i, 0)))
これはリスト内のステップです。 list[::2] は、リストを走査し、2 つのステップで要素を取り出すことを意味します。
list[::-1] を使用すると、クールな反転リストを実行できます。
10. Tab キーまたはスペースバー
長期的には、タブとスペースを混在させると大惨事が発生する可能性があり、IndentationError: 予期しないインデントが表示されることになります。 Tab キーを選択するかスペース バーを選択するかに関係なく、ファイルとプロジェクト全体でそれを使用し続ける必要があります。
タブの代わりにスペースを使用する理由の 1 つは、タブがすべてのエディタで同じように作成されるわけではないことです。使用するエディタによっては、タブが 2 ~ 8 個のスペースとして扱われる場合があります。
コードを記述するときにスペースを使用してタブを定義することもできます。このようにして、タブとして使用するスペースの数を選択できます。ほとんどの Python ユーザーは 4 つのスペースを使用します。
英語原文: The Python Way: 10 Tips
以上がPython開発時に注意すべき10のことの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









C++ 開発では、null ポインター例外は一般的なエラーであり、ポインターが初期化されていないか、解放された後も使用され続けている場合によく発生します。 Null ポインター例外はプログラムのクラッシュを引き起こすだけでなく、セキュリティ上の脆弱性も引き起こす可能性があるため、特別な注意が必要です。この記事では、C++ コードでの null ポインター例外を回避する方法について説明します。ポインター変数の初期化 C++ のポインターは、使用する前に初期化する必要があります。初期化されていない場合、ポインタはランダムなメモリ アドレスを指すことになり、Null Pointer Exception が発生する可能性があります。ポインタを初期化するには、ポインタを

Mingchao テスト中は、情報の損失やゲームへの異常なログインを防ぐために、システムのアップグレード、工場出荷時設定へのリセット、部品の交換は避けてください。特別な注意事項: テスト期間中は異議申し立てチャンネルがありませんので、取り扱いには注意してください。 Mingchao テスト中に注意が必要な事項の紹介: システムのアップグレード、工場出荷時の設定の復元、機器のコンポーネントの交換などは行わないでください。注: 1. 情報の損失を避けるため、テスト期間中は慎重にシステムをアップグレードしてください。 2. システムをアップデートすると、ゲームにログインできなくなる問題が発生する可能性があります。 3. 現段階ではまだアピールチャンネルは開設されていないため、アップグレードするかどうかはプレイヤー自身の判断で選択してください。 4.同時に、1つのゲームアカウントは1台のAndroidデバイスと1台のPCでのみ使用できます。 5. 携帯電話システムをアップグレードしたり、工場出荷時の設定に戻したり、デバイスを交換したりする前に、テストが完了するまで待つことをお勧めします。

ショートビデオプラットフォームの台頭により、Douyinは多くの人々の日常生活に欠かせないものになりました。 Douyin でのライブ配信やファンとの交流は、多くのユーザーの夢です。では、Douyin で初めてライブブロードキャストを開始するにはどうすればよいでしょうか? 1.Douyinで初めてライブブロードキャストを開始するにはどうすればよいですか? 1. 準備 ライブブロードキャストを開始するには、まずDouyinアカウントが実名認証を完了していることを確認する必要があります。実名認証のチュートリアルは、Douyin APP の「自分」 -> 「設定」 -> 「アカウントとセキュリティ」にあります。実名認証が完了すると、ライブ配信条件を満たしてDouyinプラットフォームでライブ配信を開始できます。 2. ライブ配信許可を申請する ライブ配信条件を満たした後、ライブ配信許可を申請する必要があります。 Douyin APPを開き、「自分」→「クリエイターセンター」→「ダイレクト」をクリックします。

localStorage を使用してデータを保存する手順と注意事項 この記事では、主に localStorage を使用してデータを保存する方法と、関連するコード例を紹介します。 LocalStorage は、サーバーを経由せずにデータをユーザーのコンピューターのローカルに保持する、ブラウザーにデータを保存する方法です。 localStorage を使用してデータを保存する手順と注意事項は次のとおりです。ステップ 1: ブラウザが LocalStorage をサポートしているかどうかを確認する

オフライン環境に pip をインストールする方法と注意点. ネットワークがスムーズでないオフライン環境では、pip のインストールが困難になります。この記事では、オフライン環境に pip をインストールするいくつかの方法を紹介し、具体的なコード例を示します。方法 1: オフライン インストール パッケージを使用する インターネットに接続できる環境で、次のコマンドを使用して、公式ソースから pip インストール パッケージをダウンロードします: pipdownloadpip このコマンドは、公式ソースから pip とその依存パッケージを自動的にダウンロードし、現在のディレクトリに保存します。ダウンロードした圧縮パッケージをリモートの場所に移動します

Python 開発経験の共有: バージョン管理とリリース管理を実行する方法 はじめに: Python 開発プロセスにおいて、バージョン管理とリリース管理は非常に重要なリンクです。バージョン管理を通じて、コードの変更を簡単に追跡し、開発で共同作業し、競合を解決することができます。また、リリース管理は、コードの展開、テスト、リリースのプロセスを整理して、コードの品質と安定性を確保するのに役立ちます。この記事では、バージョン管理とリリース管理の 2 つの側面から Python 開発の経験と実践を共有します。 1. バージョン管理 バージョン管理

高級プログラミング言語である Python は、学習しやすく、使いやすく、開発効率が高いという利点があり、開発者の間でますます人気が高まっています。ただし、ガベージ コレクション メカニズムの実装方法が原因で、Python は大量のメモリを処理するときにメモリ リークが発生する傾向があります。この記事では、よくあるメモリリーク問題、問題の原因、メモリリークを回避する方法の3つの側面からPython開発時に注意すべきことを紹介します。 1. 一般的なメモリ リークの問題: メモリ リークとは、動作中にプログラムによって割り当てられたメモリ空間を解放できないことを指します。

Python は、さまざまな分野のソフトウェア開発で広く使用されている強力で柔軟なプログラミング言語です。 Python 開発プロセスでは、オブジェクト指向プログラミング (OOP) の原則を習得して適用することが非常に重要です。この記事では、開発者がオブジェクト指向プログラミングの原則をよりよく理解して適用できるように、Python 開発に関する重要な提案をいくつか紹介します。まず、オブジェクト指向プログラミングの中心的な考え方は、問題を一連のオブジェクトに分割し、
