例えば下のような文字列がある場合
あいう
あうえ
い
うい
この4つの文字列のうち同じ文字の組み合わせをもつ文字列を数えたいです。
上の場合、たとえば「あ」と「う」があるのは「あいう」と「あうえ」に含むので2、
「い」は「あいう」「い」「うい」に含むので3と数えたいです。
結果は下の表になります。
パターン | 数 |
---|---|
(あ) | 2 |
(い) | 3 |
(う) | 3 |
(え) | 1 |
(あ,い) | 1 |
(あ,う) | 2 |
(あ,え) | 1 |
(い,う) | 2 |
(あ,い,う) | 1 |
(あ,う,え) | 1 |
列1は組み合わせで、列2はその組み合わせを含む文字列の数です。
文字の長さがまちまち(最長十文字以上)で、かつ実際は数十万の文字列かつ漢字があるので上記の例の「いえ」など存在しない組み合わせまではできれば数えないようにしたいです。
現在のところ皆目見当がついていない状況なので何か教えていただけましと幸いです。
環境
Python3.6
「あ」は「あい」「あう」などにも含まれますが、こういうのは重複カウントするのですか?
1文字の場合、2文字の場合...と全ての場合を数えたいです。
「い」が 3 で「う」が 2 ですか? 仕様がよくわかりません。
列2の数値の意味は何ですか? また、列1の「あえ」が列2で「1」になっているのはどういうことを表していますか?
>「い」が 3 で「う」が 2 ですか? 仕様がよくわかりません。
「う」は3でした。失礼いたしました。
>列2の数値の意味は何ですか?
列1は組み合わせで、列2はその組み合わせを含む文字列の数です。たとえば「あう」の場合「あ」と「う」を含む文字列は「あいう」と「あうえ」の2つあるので2となります。説明不足ですみません。
よく読めば読むほどわからない質問文ですね。「文字列のなかに存在する文字」ここでいう「文字列」は列1に列挙してあるものですか、別のものですか? 「文字」は列1に列挙してあるものですか、別のものですか? 列2は質問と関係あるデータですか、関係ないデータですか?
「列1は組み合わせで、列2はその組み合わせを含む文字列の数です。」それなら「あ」は5じゃないの? ますますわからないよ。
説明不足ですみません。質問文を書き換えました。
おおむね理解できたと思います。さらに「ああ」や「あうあ」のような同じ文字を複数含む文字列も考慮すべきですか?
考慮していただけるとありがたいです
回答5件
あなたの回答
tips
プレビュー