ホームページ > バックエンド開発 > Python チュートリアル > 命を救う Python の 5 つのヒント

命を救う Python の 5 つのヒント

WBOY
リリース: 2023-04-12 21:19:09
転載
1385 人が閲覧しました

命を救う Python の 5 つのヒント

Python は、簡潔でエレガントな構文を備えた強力で使いやすい言語です。Java ほど面倒でナンセンスではなく、いくつかの特別な関数や構文を使用して、コードはより短く、より簡潔になります。

著者の経験に基づいて、一般的に使用される 5 つの Python ヒントを以下に示します。

  • 文字列操作
  • リスト導出
  • lambda と map( )関数
  • if、elif、else の単一行式
  • zip() 関数

命を救う Python の 5 つのヒント

1. 文字列操作 ( https ://jq../?_wv=1027&k=UEbz4NcQ)

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() メソッドを使用し、'' (スペース) ですべての単語を接続します。逆リストに感嘆符を追加します。

2. リスト導出 (https://jq../?_wv=1027&k=UEbz4NcQ)

命を救う Python の 5 つのヒント

リスト導出、世界を変えることができるものスキルを見る!これは、リストに対して迅速な操作を実行するための非常に強力で直感的で読みやすい方法です。さらに、公開アカウントのトップの 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]
ログイン後にコピー

3.Lambda & Map function (https://jq../?_wv=1027&k=UEbz4NcQ)

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 function

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

命を救う Python の 5 つのヒント

4.if-else 単一行式 (https://jq. com /?_wv=1027&k=UEbz4NcQ)

コードのどこかに、このような無意味な条件文がある可能性があります:

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 の単一行式。

命を救う Python の 5 つのヒント

5.zip() 関数 (https://jq..com/?_wv=1027&k=UEbz4NcQ)

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 サイトの他の関連記事を参照してください。

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