Python リストを使用するエレガントでシンプルな方法: リスト内包表記

Mary-Kate Olsen
リリース: 2024-09-28 08:10:02
オリジナル
700 人が閲覧しました

An elegant and simple way to use Python Lists: List Comprehensions

リスト内包表記 は高度な概念だと思うかもしれません。ただし、難しい状況では、1 行だけでコードを簡素化できます。それがどのように機能するかを理解する時が来ました。 を用いて初心者レベルで説明します。

リスト内包表記とは何ですか?

l2 = [l の x に対して x 1] という表記をよく目にします。これと同じであると言われています:

l2 = []
for x in l:
    x = x + 1
l2.append(x)
ログイン後にコピー

どちらの場合も、l = [10, 100, 1000] で始めると、l2 は次のようになります。

[11, 101, 1001]
ログイン後にコピー

最初の構文は、リスト内包表記と呼ばれるものです。
通常の for ループの方が良いかもしれませんが、この記事を終える頃には、リスト内包表記を自信を持って使えるようになることをお約束します!

さらに、ドキュメント https://docs.python.org/3/tutorial/datastructions.html#list-comprehensions から詳細な公式定義を確認してみましょう

リスト内包表記は、リストを作成するための簡潔な方法を提供します。一般的なアプリケーションは、各要素が別のシーケンスまたは反復可能な各メンバーに適用された操作の結果である新しいリストを作成すること、または特定の条件を満たす要素のサブシーケンスを作成することです。

さらに詳しく見てみましょう。リスト内包表記は、新しいリストをより短く簡単に作成できるコードを記述するための別の方法にすぎません。リスト内包の結果はリストなので、それをリストに割り当てます。
定義の 2 番目の部分では、一般的な例について説明します。これは、具体的な例を使用して行う必要があります。
1.

fast_foods = ["Burger", "Pizza", "Tacos", "Fried Chicken", "Hot Dog"]
uppercase_fast_foods = [food.upper() for food in fast_foods]
ログイン後にコピー

この後、uppercase_fast_foods は次のようになります:

['BURGER', 'PIZZA', 'TACOS', 'FRIED CHICKEN', 'HOT DOG']
ログイン後にコピー

upper() 関数を使用して、リスト内の各食品項目を大文字に変更します。その結果、すべての項目が大文字になりました。これは、「各要素が別のシーケンスまたは反復可能な各メンバーに適用されるいくつかの操作の結果である新しいリストを作成する」方法です。
2.

fast_foods = ["Burger", "Pizza", "Tacos", "Fried Chicken", "Hot Dog"]
foods_with_space = [food for food in fast_foods if " " in food]
ログイン後にコピー

この後、food_with_space は次のようになります:

['Fried Chicken', 'Hot Dog']
ログイン後にコピー

上記のコード行は、空白文字を含む項目をリストから取得します。これは、「各要素が別のシーケンスまたは反復可能な各メンバーに適用されるいくつかの操作の結果である新しいリストを作成する」方法です。

リスト内包の例

私は多くの問題でリスト内包表記を使用してきました。なぜなら、あまりにも多くの for ループに遭遇するたびに、「問題ない、単純化するだけだ」と思ったからです。結局のところ、これも同じロジックで、よりクリーンなだけです。 ?
早速ですが、私が思いついた最も関連性の高い例をいくつか紹介します。
1.リストの各要素を変更します

foods = ["Burger", "Fries", "Fried Chicken", "Hot Dog", "Pizza"]
foods_with_version = [food + ' - 2024' for food in foods]
print(foods_with_version)
ログイン後にコピー

出力:

['Burger - 2024', 'Fries - 2024', 'Fried Chicken - 2024', 'Hot Dog - 2024', 'Pizza - 2024']
ログイン後にコピー

この例では、食品のリストを取得し、それぞれに「- 2024」を追加します。リスト内包表記を使用して、これらの更新された名前を持つ新しいリストをすばやく作成します。
2.条件に基づいてリストからサブリストを作成します

foods = ["Burger", "Fried Chicken", "Hot Dog", "Fries", "Pizza"]
long_foods = [food for food in foods if len(food) > 7]
print(long_foods)
ログイン後にコピー

出力:

['Fried Chicken']`
ログイン後にコピー

この例では、食品のリストを作成し、7 文字を超えるものを除外します。これを達成するために、条件付きのリスト内包表記を使用します。
3.リスト内包表記のある range 関数を使用してリストを作成します

x = [i for i in range(10, 20, 2)]
print(x)
ログイン後にコピー

出力:

[10, 12, 14, 16, 18]
ログイン後にコピー

この例では、range() のリスト内包表記を使用して、10 から 18 の範囲の数値のリストを作成します。
4.リスト内包表記を文字列に適用します

input_string = "hello world"
marked_vowels = ['*' if char in 'aeiouAEIOU' else char for char in input_string]
print(marked_vowels)
ログイン後にコピー

出力:

['h', '*', 'l', 'l', '*', ' ', 'w', 'o', 'r', 'l', 'd']
ログイン後にコピー

この最後の例では、文字列を取得し、その母音にアスタリスク (*) を付けます。リスト内包表記を使用して、元の文字列に基づいて新しいリストを作成します。

結論

この記事では、定義からリスト内包表記をさらに説明するさまざまな例に至るまで、リスト内包表記に関する基本的な洞察をすべて取り上げてきました。すべてが明確になり、今後はリスト内包表記を Python コードに組み込む意欲がさらに高まることを願っています!

以上がPython リストを使用するエレガントでシンプルな方法: リスト内包表記の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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