Python を開発する際に注意すべき 10 のことを共有する

高洛峰
リリース: 2017-03-28 15:50:09
オリジナル
1450 人が閲覧しました

Python 開発でも他の言語の開発でも、開発中に役立つヒントやテクニックをマスターできれば、開発効率が大幅に向上することは間違いありません。今日私が共有するのは Python 開発です。初心者がこの言語を学習する際によく犯す間違いをいくつか見てみましょう。

">

注意: この記事は、私たちが全員 Python 3

1 を使用していることを前提としています。 リストの内包表記

リスト があります: Bag = [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 のリスト内包表記と呼ばれます

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)
ログイン後にコピー
If x はリストなので、各要素のインデックスは必要ありませんが、必要な場合は次のようになります。

bag = [1, 2, 3, 4, 5] 
for index, element in enumerate(bag): 
 print(index, element)
ログイン後にコピー
非常に直感的です。クリア 3. 要素の交換

Java または

C 言語

を使用している場合は、これに慣れているかもしれません

a = 5 
b = 10
# 交换 a 和 b
tmp = a 
a = b 
b = tmp
ログイン後にコピー
でも、Python には、より自然で優れたメソッド
a = 5 
b = 10 
# 交换a 和 b
a, b = b, a
ログイン後にコピー
が用意されています。

4. 初期化リスト

10 個の

整数

0 のリストが必要な場合は、次のように変更します。リストにリストが含まれている場合

例:

bag = [] 
for _ in range(10): 
 bag.append(0)
ログイン後にコピー
おっと!最初のリストを変更してください:

bag = [0] * 10
ログイン後にコピー
次も覚えておいてください:

「時期尚早の最適化は諸悪の根源である」

自分自身に問いかけてください。

5.

文字列の構築

多くの

変数がある場合は、次のことは避けてください:代わりに、素敵で簡潔なメソッドを使用してください。

これを実行してください:

bag_of_bags = [[0]] * 5 # [[0], [0], [0], [0], [0]] 
bag_of_bags[0][0] = 1 # [[1], [1], [1], [1], [1]]
ログイン後にコピー
はるかに優れています!


6. タプルを返す

Python では、関数内で複数の要素を返すことができますが、タプルを解凍するときに問題が発生します。 よくある間違いは次のとおりです:

bag_of_bags = [[0] for _ in range(5)] 
# [[0], [0], [0], [0], [0]]
bag_of_bags[0][0] = 1 
# [[1], [0], [0], [0], [0]]
ログイン後にコピー

これは必要ありません。次のように変更できます:

すべての要素を返す必要がある場合は、アンダースコア_:

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)
ログイン後にコピー

を使用します。 7. 辞書にアクセスするのは非常に効率的です。 (辞書)

また、

key

、ペア (キー、値) を辞書に記述することもよくあります。

辞書に存在しないキーにアクセスしようとすると、それを回避するために KeyError が発生する可能性があります。

def binary(): 
 return 0, 1
result = binary() 
zero = result[0] 
one = result[1]
ログイン後にコピー

ただし、get() を使用する方が良い方法です

もちろん、代わりに setdefault を使用することもできます。

これは、より単純ですがより高価な方法も使用します:

zero, _ = binary()
ログイン後にコピー

dict 導出を使用することもできます。

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))
ログイン後にコピー

これら 2 つのメソッドは、count が呼び出されるたびにリストを走査するため、コストがかかります。

8 ライブラリの使用

既存のライブラリをインポートするだけで、本当にやりたいことが実行できます。 引き続き前の例について話しますが、リスト内に数値が出現する回数をカウントする関数を構築します。まあ、そのようなことができるライブラリはすでにあります。

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)))
ログイン後にコピー

ライブラリを使用するいくつかの理由:

1. コードは正しく、テストされています。

2. アルゴリズムが最適化されているため、より高速に実行できる可能性があります。

3. 抽象化: それらは明確に指摘され、文書化されているため、まだ実装されていないものに焦点を当てることができます。

4. 最後に、すべてはすでにそこにあるので、車輪を再発明する必要はありません。

9. リストのスライス/ステップ

この list[start:stop:step] のように、開始点と終了点を指定できます。

リストの最初の 5 つの要素を取り出します:

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)))
ログイン後にコピー

これはスライスであり、停止点を 5 に指定し、停止する前にリストから 5 つの要素が取り出されます。

最後の 5 つの要素をどうするか?

えー

分からないの? -5 は、リストの末尾から 5 つの要素を取得することを意味します。

リスト内の要素の間隔を空けたい場合は、次のようにすることもできます:

countr = {num: bag.count(num) for num in bag}
ログイン後にコピー

ただし、次のようにする必要があります:

from collections import Counter 
bag = [2, 3, 1, 2, 5, 6, 7, 9, 2, 7] 
countr = Counter(bag)
for i in range(10): 
 print("Count of {}: {}".format(i, countr[i]))
ログイン後にコピー

これはリスト内にステップインしています。 list[::2] は、リストを走査し、2 つのステップで要素を取り出すことを意味します。

list[::-1] を使用すると、リストをクールに反転できます。

10. Tab キーまたはスペースバー

長期的には、タブとスペースを混在させると大惨事が発生し、IndentationError: 予期しないインデントが表示されることになります。 Tab キーを選択するかスペース バーを選択するかに関係なく、ファイルとプロジェクト全体でそれを使用し続ける必要があります。

タブの代わりにスペースを使用する理由の 1 つは、タブがすべての エディター で同じではないためです。使用するエディタによっては、タブが 2 ~ 8 個のスペースとして扱われる場合があります。

コードを記述するときにスペースを使用してタブを定義することもできます。このようにして、タブとして使用するスペースの数を選択できます。ほとんどの Python ユーザーは 4 つのスペースを使用します。

概要

上記は、Python 開発で注意すべきヒントです。ご質問があれば、メッセージを残してください。

以上がPython を開発する際に注意すべき 10 のことを共有するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート