Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonのリストのリストのすべての位置で指定された文字の頻度を検索します


リストを要素として構成されたリストがあるシナリオを考えてみましょう。内部リストのさまざまな位置にある1つの文字の頻度を見つけることに関心があります。以下の例で要件を明確にします。

以下に示すリストのリストを検討してください。

listA = [['a', 'a', 'b'],
['a', 'c', 'b'],
['c', 'a', 'b'],
['c', 'a', 'a']]

abobeリストには、3つの要素を持つリストである要素があります。最初の内部リストを考えると、titは0、1、2の位置にa、a、bを持っています。同様に、3番目のリストの場合、0,1,2のc、a、bです。すべての内部リストを考慮すると、位置0での頻度aは2、位置1での頻度は3、位置2での頻度aは1であると言えます。

以下のプログラムは、リストのリスト内の任意の要素についてそのような値を見つけることを目的としています。

パンダを使用する

pandasライブラリは、データフレームを作成することによるデータ操作に広く使用されています。そこで、データフレームを作成し、where句を使用してループし、データフレームの各位置に値「a」が存在するかどうかを確認します。

import pandas as pd

# Given list of lists
listA = [['a', 'a', 'b'],
['a', 'c', 'b'],
['c', 'a', 'b'],
['c', 'a', 'a']]

# using pandas
df = pd.DataFrame(listA)
res = df.where(df == 'a', 0).where(df != 'a', 1)

# Result
print("Occurrence of 'a' at 0,1 and 2 position\n", res.sum())

出力

上記のコードを実行すると、次の結果が得られます-

Occurrence of 'a' at 0,1 and 2 position
0 2.0
1 3.0
2 1.0

zip付き

forループを使用して、リスト内のサブリスト内の各位置をループし、リストのリスト全体にzip関数を適用できます。

# Given list of lists
listA = [['a', 'a', 'b'],
['a', 'c', 'b'],
['c', 'a', 'b'],
['c', 'a', 'a']]

res = [elem.count('a') for elem in zip(*listA)]
# Result
print("Occurrence of 'a' at 0,1 and 2 position\n", res)

出力

上記のコードを実行すると、次の結果が得られます-

Occurrence of 'a' at 0,1 and 2 position
[2, 3, 1]

  1. 2つのリストの共通部分を見つけるPythonプログラム?

    交差演算とは、リスト1とリスト2からすべての共通要素を取得する必要があり、すべての要素が別の3番目のリストに格納されることを意味します。 List1::[1,2,3] List2::[2,3,6] List3::[2,3] アルゴリズム Step 1: input lists. Step 2: first traverse all the elements in the first list and check with the elements in the second list. Step 3: if the elements are matched then store in t

  2. Pythonの特定の位置にあるリストのオブジェクトを挿入するにはどうすればよいですか?

    特定の位置に要素を挿入する場合は、insert(pos、obj)メソッドを使用します。 1つのオブジェクトを受け入れ、そのオブジェクトが呼び出されたリストの位置posにそのオブジェクトを追加します。 例 my_list = [2, 3, 1, -4, -1, -4] my_list.insert(1, 0) print(my_list) 出力 これにより、出力が得られます- [2, 0, 3, 1, -4, -1, -4] オブジェクトを最後にのみ挿入する場合は、挿入の代わりに追加を使用します。 1つのオブジェクトを受け入れ、そのオブジェクトを呼び出されたリストの最後に追加します。 例