10個のPythonテクニックを持っている価値があります。


リスト式
リストがあります。bag = [1, 2, 3, 4, 5]
今はすべての要素を倍増させたいです。このように見せてください。[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のリスト導出式といいます。
リストを巡回
上のリストです。できるだけ避けるなら:

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)
直観明瞭である。
元素交換
javaまたはC言語からPythonに移行すれば、このように慣れるかもしれません。

a = 5 
b = 10
#    a   b
tmp = a 
a = b 
b = tmp
しかしPythonはもっと自然でいい方法を提供します。

a = 5 
b = 10 
#   a   b
a, b = b, a
初期化リスト
10個の整数0のリストが欲しいなら、まず思いつきます。

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]]
Oops!すべてのリストが変わりました。最初のリストを変更したいだけです。
変更しました

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 " + 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)
tuple元のグループに戻ります
Pythonは一つの関数で複数の要素を返すことができます。これは生活をより簡単にします。しかし、元のグループを解凍する時にラインを出すというよくあるエラーがあります。

def binary(): return 0, 1
result = binary() 
zero = result[0] 
one = result[1]
これは必要ないです。完全にこのように変えられます。

def binary(): return 0, 1
zero, one = binary()
すべての要素が必要であれば、下線(u)を使います。zero, _ = binary()こんなに効率がいいです。
Dict辞書にアクセス
あなたもよくdictsにキー、value(キー、値)を書き込みます。
もしあなたがdictに存在しないkeyにアクセスしようとすると、KeyErrエラーを避けるために、このようにする傾向があります。

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))
しかし、get()を使うのはもっと良い方法です。

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)))
もちろんset defaultを使ってもいいです。
これはもっと簡単なのに、もっと多くのお金を使う方法です。

bag = [2, 3, 1, 2, 5, 6, 7, 9, 2, 7] 
# {2: 3, 3: 1, 1: 1, 5: 1, 6: 1, 7: 2, 9: 1}
countr = dict([(num, bag.count(num)) for num in bag])
for i in range(10): 
 print("Count of {}: {}".format(i, countr.get(i, 0)))
dict導出式を使うこともできます。

countr = {num: bag.count(num) for num in bag}
これらの2つの方法のオーバーヘッドが大きいのは、countが呼び出されるたびにリストを巡回するからです。
ライブラリを使う
既存のライブラリを導入すれば、本当にやりたいことができます。
それとも前の例ですか?関数を作って、リストに表示される数を数えます。じゃ、もう一つの倉庫があります。このようなことができます。

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]))
いくつかの用庫の理由:
•コードは正しく、そしてテストされました。
•アルゴリズムは最適かもしれません。そうすると速く走ります。
•抽象化:明確で友好的な文書を指しています。まだ実現されていないものに集中できます。
•最後に、もうあそこにいます。もう車輪を作らなくてもいいです。
•リストでスライス/ステップ
ポイントとstopポイントを指定できます。このようにlist[start:stop:step]です。リストの最初の5つの要素を取り出します。

bag = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 
for elem in bag[:5]: 
 print(elem)
これはスライスです。stopポイントを5と指定します。停止する前にリストから5つの要素を取り出します。
最後の5つの要素はどうしますか?

bag = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 
for elem in bag[-5:]: 
 print(elem)
見てないですか5は、リストの最後から5つの要素を取り出すことを意味する。
リストの要素間隔を操作したいなら、こうします。

bag = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 
for index, elem in enumerate(bag): 
 if index % 2 == 0: 
print(elem)
しかし、あなたはこうするべきです。

bag = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 
for elem in bag[::2]: 
 print(elem)
#     ranges
bag = list(range(0,10,2)) 
print(bag)
これがリストのステップです。リストを巡回しながら要素を取り出すという意味です。
リストをロールバックしてクールなリストを使うことができます。
タブキーですか?それともスペースですか
長い間見ると、tabとスペースを混ぜ合わせると、多くの迷惑がかかります。Indentation Error:unexpected indentが見られます。タブキーを選択しても、スペースキーを選択しても、ファイルとプロジェクトの中でずっと使うべきです。
タブではなくスペースを使う理由は、タブはすべてのエディタで同じではないからです。使っているエディタを見ると、tabは2つから8つのスペースとして扱われるかもしれません。
コードを書く時はスペースでtabを定義してもいいです。そうすると、自分でいくつかのスペースを使ってtabとして使うことができます。大多数のPythonユーザーは4つのスペースを使っています。
締め括りをつける
以上述べたのは小编が皆さんに绍介した10のPython小技术です。皆さんに役に立つことを望んでいます。もし何か疑问がありましたら、メッセージをください。小编はすぐに皆さんに返事します。ここでも私たちのサイトを応援してくれてありがとうございます。