ネストされたリスト内の要素をエレガントな方法でカウントします

Ekeyme Mo

次のようなリストにタプルをネストしました

l = [(1, 'a', 'b'), (2, 'b', 'c'), (3, 'e', 'a')]

リスト内の「a」と「b」の合計数を知りたい。そのため、現在、次のコードを使用して結果を取得しています。

amount_a_and_b = len([None for _, elem2, elem3 in l if elem2 == 'a' or elem3 == 'b'])

しかし、私は得たamount_a_and_b = 1ので、正しい答えを得る方法は?

また、これを行うためのよりエレガントな方法(コードが少ない、パフォーマンスが高い、または組み込みを使用している)はありますか?

Martijn Pieters

リストをフラット化itertools.chain.from_iterable()してcollections.Counter()オブジェクトに渡します

from collections import Counter
from itertools import chain

counts = Counter(chain.from_iterable(l))
amount_a_and_b = counts['a'] + counts['b']

またはsum()、フラット化されたシーケンスに値が表示される回数をカウントするために使用します。

from itertools import chain

amount_a_and_b = sum(1 for v in chain.from_iterable(l) if v in {'a', 'b'})

2つのアプローチは、私のMacbook Pro(OS X 10.11)のPython3.5.1で速度がほぼ同等です。

>>> from timeit import timeit
>>> from collections import Counter
>>> from itertools import chain
>>> l = [(1, 'a', 'b'), (2, 'b', 'c'), (3, 'e', 'a')] * 1000  # make it interesting
>>> def counter():
...     counts = Counter(chain.from_iterable(l))
...     counts['a'] + counts['b']
...
>>> def summing():
...     sum(1 for v in chain.from_iterable(l) if v in {'a', 'b'})
...
>>> timeit(counter, number=1000)
0.5640139860006457
>>> timeit(summing, number=1000)
0.6066895100011607

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

パンダはgropby内のネストされたリストで最も頻繁な要素をカウントし、最も大きくなります

分類Dev

Rのネストされたリストに変数を追加するエレガントな方法

分類Dev

$ indexなしでネストされたng-repeat内のアイテムをカウントする方法

分類Dev

ネストされたリストの要素をカウント数で置き換えます

分類Dev

ネストされたリスト内の各位置の出現回数をカウントします

分類Dev

複数のネストされた辞書内のの要素をカウントします

分類Dev

Elasticsearch-ネストされたフィールド内の要素の出現をカウントします

分類Dev

ネストされたリスト内の等しいサブリストの出現をカウントするより速い方法は何ですか?

分類Dev

再帰的方法でリスト内の要素をカウントします

分類Dev

Rでのネストされた操作。よりエレガントな方法はありますか?

分類Dev

このネストされたRリストからデータを抽出するためのエレガントで機能的な方法

分類Dev

リスト内包表記:リスト内の空の要素をエレガントに削除して削除します

分類Dev

ネストされたループ内でカウントし、2番目のネストされたループの前に値を使用します

分類Dev

ネストされた要素でクリックされたイベントのみをトリガーする

分類Dev

複数のグループに対してネストされたifelseステートメントを実行するエレガントな方法

分類Dev

別のリストに表示される部分文字列を持たないリスト内のアイテムを削除するエレガントな方法

分類Dev

リンティングルールに違反することなく、セレクター内の要素を3つのネストレベルの深さでエレガントにターゲティングします

分類Dev

C#で更新されたリストボックスのエントリをカウントする方法は?

分類Dev

setインターフェースを使用して、ソートされたアレイ内の一意の要素をカウントできますか?

分類Dev

ネストされたTask.WhenAllsと同等のエレガントな方法はありますか?

分類Dev

ネストされたリストを反復処理し、特定の値をカウントします

分類Dev

std :: map内の指定されたプレフィックスまたはstd :: set内の要素を持つキーを見つけるエレガントな方法

分類Dev

カウンターを使用して、ネストされたリスト内のリストアイテムのブロックレベルの要素を垂直方向に整列しますか?

分類Dev

特定の値よりも大きい、または小さいネストされたリスト内の値の数をカウントします

分類Dev

ネストされた辞書からいくつかのキーを削除するエレガントな方法

分類Dev

印刷されたステートメントを、それを印刷したコード行までたどるエレガントな方法はありますか?

分類Dev

MongoDB内のネストされたjson配列ドキュメントのコレクションをカウントしてグループ化します

分類Dev

Pysparkデータフレーム:配列またはリスト内の要素をカウントします

分類Dev

Python内のネストされたリスト(xとyの依存関係)内の特定のアイテムをカウントします

Related 関連記事

  1. 1

    パンダはgropby内のネストされたリストで最も頻繁な要素をカウントし、最も大きくなります

  2. 2

    Rのネストされたリストに変数を追加するエレガントな方法

  3. 3

    $ indexなしでネストされたng-repeat内のアイテムをカウントする方法

  4. 4

    ネストされたリストの要素をカウント数で置き換えます

  5. 5

    ネストされたリスト内の各位置の出現回数をカウントします

  6. 6

    複数のネストされた辞書内のの要素をカウントします

  7. 7

    Elasticsearch-ネストされたフィールド内の要素の出現をカウントします

  8. 8

    ネストされたリスト内の等しいサブリストの出現をカウントするより速い方法は何ですか?

  9. 9

    再帰的方法でリスト内の要素をカウントします

  10. 10

    Rでのネストされた操作。よりエレガントな方法はありますか?

  11. 11

    このネストされたRリストからデータを抽出するためのエレガントで機能的な方法

  12. 12

    リスト内包表記:リスト内の空の要素をエレガントに削除して削除します

  13. 13

    ネストされたループ内でカウントし、2番目のネストされたループの前に値を使用します

  14. 14

    ネストされた要素でクリックされたイベントのみをトリガーする

  15. 15

    複数のグループに対してネストされたifelseステートメントを実行するエレガントな方法

  16. 16

    別のリストに表示される部分文字列を持たないリスト内のアイテムを削除するエレガントな方法

  17. 17

    リンティングルールに違反することなく、セレクター内の要素を3つのネストレベルの深さでエレガントにターゲティングします

  18. 18

    C#で更新されたリストボックスのエントリをカウントする方法は?

  19. 19

    setインターフェースを使用して、ソートされたアレイ内の一意の要素をカウントできますか?

  20. 20

    ネストされたTask.WhenAllsと同等のエレガントな方法はありますか?

  21. 21

    ネストされたリストを反復処理し、特定の値をカウントします

  22. 22

    std :: map内の指定されたプレフィックスまたはstd :: set内の要素を持つキーを見つけるエレガントな方法

  23. 23

    カウンターを使用して、ネストされたリスト内のリストアイテムのブロックレベルの要素を垂直方向に整列しますか?

  24. 24

    特定の値よりも大きい、または小さいネストされたリスト内の値の数をカウントします

  25. 25

    ネストされた辞書からいくつかのキーを削除するエレガントな方法

  26. 26

    印刷されたステートメントを、それを印刷したコード行までたどるエレガントな方法はありますか?

  27. 27

    MongoDB内のネストされたjson配列ドキュメントのコレクションをカウントしてグループ化します

  28. 28

    Pysparkデータフレーム:配列またはリスト内の要素をカウントします

  29. 29

    Python内のネストされたリスト(xとyの依存関係)内の特定のアイテムをカウントします

ホットタグ

アーカイブ