Pythonでリスト内包表記をタイムリーに使用すると、リストの反復操作が簡単になります。 1行であることに加えて、より読みやすく、より効率的に実行されます。
ただし、使い方がわからない場合は、問題が発生する可能性があります。コードのどこに適用するかわからない場合は、さらにイライラする可能性があります。ここでは、Pythonでリスト内包表記を使用する方法をいくつかの実際の例とともに示します。
Pythonのリスト内包表記とは何ですか?それはどのように機能しますか?
Pythonでアイテムのリストを作成するのは簡単です。ただし、数学演算または文字列演算から値または項目のリストを生成する必要がある場合、タスクは少し面倒になる可能性があります。リスト内包表記を使用すると便利な場合があります。
リスト内包表記を使用する利点は、1つのリストで複数の操作を実行できることです。
Wi-FiセキュリティタイプのWindows10を確認する方法
対照的に、新しいアイテムを作成し、自動的に宣言する空のリストに追加します。したがって、空のリストを手動で作成してそれに追加する代わりに、 にとって ループ、Pythonのリスト内包表記を使用すると、新しいリストがどのように表示されるかを気にすることなく、これを自動的に行うことができます。
「リスト内包」という用語は、すべての操作が名前付き変数に割り当てられたPythonリストにあるという事実に由来しています。前に述べたように、1行のコードで特定の操作を実行できます。次に、出力を新しいリストに追加します。
最終的には、リスト内包表記の出力を他の目的に使用することもできます。これは、式を別々の変数にスタックするためです。したがって、後でそれらを参照できます。
たとえば、あなたは BeautifulSoupでウェブサイトをスクレイピングする 。 Webサイトからすべてのアイテムの名前とその価格を取得する予定であると想定します。
次に、スクレイピングされたデータをCSVファイルまたはExcelファイルに入れることにします。理想的な方法は、すべてのアイテムの名前とその価格を削り、両方を別々の列に配置することです。ただし、その場合、リスト内包表記を使用すると、スクレイピングされたデータが専用変数に含まれるようになります。その後、そのような変数をPythonDataFrameに変換できます。
以下の例を見てください。
Products = [i.text for i in bs.find_all('name tags')]
Price = [i.text for i in bs.find_all('price tags')]
ループ変数を取得したら、Pythonのパンダを使用してDataFrameの個別の列に配置できます。
Pythonでリスト内包表記を作成して使用する方法
NS にとって ループは、リスト内包表記に不可欠なイテレータです。一般に、Pythonのリスト内包表記は次の形式を取ります。
ComprehensionVariable = [expression for items in list]
印刷 ComprehensionVariable 上記のコードの結果をリストとして出力します。
ただし、リスト内包とオープンを混同しないように注意してください にとって ループ。
たとえば、 オープンforループを使用する 1から30までの3の倍数すべてのリストを取得するには:
myList = []
for i in range(1, 11):
myList.append(i * 3)
print(myList)
Output: [3, 6, 9, 12, 15, 18, 21, 24, 27, 30]
2つを比較するために、リスト内包表記を使用して同じことを行いましょう。
multiplesOf3 = [i*3 for i in range(1, 11)]
print(multiplesOf3)
Output = [3, 6, 9, 12, 15, 18, 21, 24, 27, 30]
条件文でリスト内包表記を使用することもできます。以下のサンプルコードは、1から10までのすべての奇数を出力します。
oddNumbers = [i for i in range(1, 11) if not i%2==2]
print(oddNumbers)
Output = [1, 3, 5, 7, 9]
それでは、openを使用して上記のコードも書き直してみましょう。 にとって ループ:
myList = []
for i in range(1, 11):
if not i%2 == 0:
myList.append(i)
print(myList)
Output: [1, 3, 5, 7, 9]
関連している: Pythonでリストを追加する方法
リスト内包表記は、ネストされたifステートメントも受け入れます。
oddNumbers = [i for i in range(1, 11) if not i%2==0 if i<4]
print(oddNumbers)
Output: [1, 3]
ネストされたものも必要です にとって ループ:
someNums = [[i*2 for i in range(1, 3)] for _ in range(4)]
print(someNums)
プレーンをネストすることもできます にとって リスト内包表記のループ:
someNums = [i*2 for i in range(1, 3) for k in range(4)]
Pythonリスト内包表記を使用して文字列を操作することもできます。以下の単語カウンターの理解を見てみましょう:
word = ['This is a python list comprehension tutorial']
wordCounter = [i.count(' ') + 1 for i in word]
print(wordCounter)
Output: 7
リスト内包表記は、特定の操作を実行する関数を受け入れることもできます。これがどのように機能するかを確認するために、リスト内包に偶数を取得する乗数関数を挿入してみましょう。
Numbers = [4, 7, 8, 15, 17, 10]
def multiplier(n):
multiple = n*2
return multiple
multipleEven = [multiplier(i) for i in Numbers if i%2==0]
print(multipleEven)
Output: [8, 16, 20]
上記のコードは、理解を使用せずに1つの関数で記述できます。ただし、リスト内包表記は、複数の反復を実行し、それぞれを別々の変数に配置する必要がある場合に役立ちます。
たとえば、次の操作を実行できます。 NS 専用の変数があります。上記の理解を変更して、奇数から偶数を生成してみましょう。
multipleEvenFromOdds = [multiplier(i) for i in Numbers if not i%2==0]
print(multipleEvenFromOdds)
Output: [14, 30, 34]
辞書とセット内包
リスト内包表記に加えて、Pythonは辞書と集合の内包表記機能も提供します。
以下の辞書理解の例を見て、それがどのように機能するかを確認してください。
corresponding = {i: i*2 for i in range(10) if not i%2==0}
print(corr)
Output: {1: 2, 3: 6, 5: 10, 7: 14, 9: 18}
上記のコードは、1から9までの数字のリストを繰り返し処理し、それらをキーにします。次に、Pythonに各キーに2を掛けるように指示します。最後に、その操作の結果を、結果の配列の各キーに対応する値として表示します。
関連している: Pythonで配列とリストがどのように機能するか
集合の内包は、リストの内包に少し似ています。集合の内包的包絡の例を次に示します。
Windowsでpngをpdfに変換する方法
numbers = {i**(2) for i in range(10) if i%4==0}
print(numbers)
Output: {0, 16, 64}
ただし、リスト内包表記とは異なり、集合内包表記は重複を削除します。
nums = {i for i in range(20) if i%2==1 for k in range(10) if k%2==1}
print(nums)
Output: {1, 3, 5, 7, 9, 11, 13, 15, 17, 19}
リスト内包表記を使用して上記のコードを試して、それらの違いを確認できます。
毎回リスト内包表記を使用できますか?
リスト内包表記のさまざまな例と、それらを使用できる場所について見てきました。ただし、他のPythonメソッドと同様に、リスト内包表記のユースケースは、解決したい特定の問題によって異なります。したがって、解決したい特定の問題に理想的な場合にのみ使用してください。
リスト内包表記の目的の1つは、コードを単純化し、読みやすくすることです。したがって、それを扱うときは複雑さを避けるようにしてください。たとえば、Pythonの長い理解は、読みにくくなる可能性があります。それはその目的を打ち負かします。
共有 共有 つぶやき Eメール Pythonリスト内包表記の使用方法(およびそれらを使用しない場合)生産性とコードの可読性を一晩で向上させるPythonのこの驚くべき機能の使用について知っておく必要があるすべてがここにあります。
次を読む 関連トピック- プログラミング
- Python
Idowuは、スマートな技術と生産性に情熱を注いでいます。暇なときは、コーディングで遊んだり、退屈したときにチェス盤に切り替えたりしますが、たまに日常から離れることも大好きです。人々に現代の技術の道を示すことへの彼の情熱は、彼がもっと書くように動機づけます。
IdowuOmisolaのその他の記事ニュースレターを購読する
ニュースレターに参加して、技術的なヒント、レビュー、無料の電子書籍、限定セールを入手してください。
購読するにはここをクリックしてください