Python は、簡潔でエレガントな構文を備えた強力で使いやすい言語です。Java ほど面倒でナンセンスではなく、いくつかの特別な関数や構文を使用して、コードはより短く、より簡潔になります。
著者の経験に基づいて、一般的に使用される 5 つの Python ヒントを以下に示します。
Python は、数学演算子 ( や * など) を使用して文字列を操作するのが得意です。 - 文字列の結合 - * 文字列の繰り返し
my_string = "Hi Python..!"print(my_string * 2)#Hi Python..!Hi Python..!print(my_string + " I love Python" * 2)#Hi Python..! I love Python I love Python
スライス操作 [::-1] を使用して文字列を簡単に反転することもできます。これは文字列 (リストの反転など) に限定されません。
my_string = "Hi Python..!"print(my_string[::-1])# !..nohtyP iHmy_list = [1,2,3,4,5] print(my_list[::-1])# [5, 4, 3, 2, 1]
以下は、反転して文字列に結合した単語リストです:
word_list = ["awesome", "is", "this"]print(' '.join(word_list[::-1]) + '!') #this is awesome!
.join() メソッドを使用し、'' (スペース) ですべての単語を接続します。逆リストに感嘆符を追加します。
リスト導出、世界を変えることができるものスキルを見る!これは、リストに対して迅速な操作を実行するための非常に強力で直感的で読みやすい方法です。さらに、公開アカウントのトップの Python 背景を検索し、「モノのインターネット」と返信すると、サプライズのギフト パッケージがプレゼントされます。
数値の 2 乗を返し、5 を加算するランダム関数があるとします。
def stupid_func(x): return x**2 + 5
ここで、関数愚かな関数()をリスト内のすべての奇数に適用したいとします。リスト導出を使用しない場合の愚かな方法は次のとおりです:
def stupid_func(x): return x**2 + 5my_list = [1, 2, 3, 4, 5] new_list = []for x in my_list: if x % 2 != 0: new_list.append(stupid_func(x)) print(new_list)#[6, 14, 30]
リスト導出を使用すると、コードはすぐにエレガントになります:
def stupid_func(x): return x**2 + 5my_list = [1, 2, 3, 4, 5] print([stupid_func(x) for x in my_list if x % 2 != 0])#[6, 14, 30]
リスト導出の構文: [項目の式in list] だけでは十分ではないと思われる場合は、上記の「奇数」条件などの判定条件を追加することもできます: [expression for item in list ifconditional]。基本的に次のコードの動作:
for item in list: if conditional: expression
非常にクール! 。しかし、さらに一歩進んで、愚かな_func() 関数を直接省略することもできます:
my_list = [1, 2, 3, 4, 5]print([x ** 2 + 5 for x in my_list if x % 2 != 0])#[6, 14, 30]
Lambda 少し奇妙に見えますが、奇妙なものは一般に、一度マスターすれば非常に強力で直観的であり、多くの無意味なコードを節約できます。
基本的に、Lambda 関数は小さな匿名関数です。なぜ匿名なのか?
Lambda は単純な操作を実行するために最もよく使用されますが、def my_function() ほど本格的なものである必要はないため、Lambda は愚かな関数 (で作られたものなので無視してください) とも呼ばれます。
上記の例を改良してください: def愚かな_func(x) は一行のLambda関数で置き換えることができます:
stupid_func = (lambda x : x ** 2 + 5) print([stupid_func(1), stupid_func(3), stupid_func(5)])#[6, 14, 30]
それでは、なぜこの奇妙な構文を使用するのでしょうか?これは、実際の関数を定義せずにいくつかの単純な操作を実行したい場合に便利です。
数値のリストを例として挙げます。リストがソートされているとしますか? 1 つの方法は、sorted() メソッドを使用することです。
my_list = [2, 1, 0, -1, -2] print(sorted(my_list))#[-2, -1, 0, 1, 2]
sorted() 関数は並べ替えを完了できますが、各数値の 2 乗で並べ替えたい場合はどうすればよいでしょうか。現時点では、ラムダ関数を使用してソート キー key を定義できます。これは、sorted() メソッドでもソート方法を決定するために使用されます。
my_list = [2, 1, 0, -1, -2] print(sorted(my_list, key = lambda x : x ** 2))#[0, -1, 1, -2, 2]
map is Python の組み込み関数。提供された関数に基づいて、指定されたシーケンスをマップします。リストがあり、リスト内の各要素を別のリスト内の対応する要素と乗算するとします。ラムダ関数とマップを使用してください。
print(list(map(lambda x, y : x * y, [1, 2, 3], [4, 5, 6]))) #[4, 10, 18]
次の従来のナンセンス コードを使用すると、シンプルかつエレガントになります:
x, y = [1, 2, 3], [4, 5, 6] z = []for i in range(len(x)): z.append(x[i] * y[i])print(z) #[4, 10, 18]
コードのどこかに、このような無意味な条件文がある可能性があります:
x = int(input())if x >= 10:print("Horse") elif 1 < x < 10:print("Duck")else:print("Baguette")
プログラムを実行するとき、input() 関数からのプロンプトが表示されます。 ピースを入力してください5などの情報を取得してアヒルを入手します。しかし実際には、1 行のコードですべてを完了することもできます:
print("Horse" if x >= 10 else "Duck" if 1 < x < 10 else "Baguette")
1 行のコードはシンプルで直接的です! 古いコードを調べてみると、多くの判断を 1 つの要素にまとめられることがわかります。 if-else の単一行式。
map() 関数を覚えておいてください2 つのリスト要素をビット単位で部分的に乗算しますか?
zip() を使用すると簡単になります。 2 つのリストがあり、1 つは名を含み、もう 1 つは姓を含むとします。これらを順番にマージするにはどうすればよいでしょうか。 zip()を使ってください!
first_names = ["Peter", "Christian", "Klaus"] last_names = ["Jensen", "Smith", "Nistrup"]print([' '.join(x) for x in zip(first_names, last_names)]) #['Peter Jensen', 'Christian Smith', 'Klaus Nistrup']
上記の 5 つの簡単なヒントがお役に立てば幸いです。
以上が命を救う Python の 5 つのヒントの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。