質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

3回答

191閲覧

内包されるパターンの出力

退会済みユーザー

退会済みユーザー

総合スコア0

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

1クリップ

投稿2018/12/12 02:08

次のデータがあるとします.

a,a,c
a,b,c
a,b,c
a,c,d

この中から3回要素が出てくるパターンを出力すると

a;4
ac;4
c;4

となります.

しかし要素ac要素a, 要素cに内包されるので, 要素acのみを出力させるプリグラムを作りたいです.

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Lhankor_Mhy

2018/12/12 02:42

『3回要素が出てくるパターン』とは、3回以上要素が出てくるパターンのことでよろしいですか? 『要素acのみを出力させるプリグラム』とのことですが、現状の内包されているものも出力してしまうコードをご提示いただけますか?
退会済みユーザー

退会済みユーザー

2018/12/12 02:52

それを今作っているんです
Lhankor_Mhy

2018/12/12 02:56

では、現状のコードをご提示いただけますか?
Lhankor_Mhy

2018/12/12 03:08

確認させていただきたいのですが、「他の要素に内包されない要素を仕分けるコードを知りたい」というご質問でよろしいですか?
退会済みユーザー

退会済みユーザー

2018/12/12 03:18

そうです
Lhankor_Mhy

2018/12/12 03:28

この要素はユニーク化されていますか? つまり、要素ac と 要素ca は、同時に存在しない、と考えてよろしいですか? また、要素の文字列はソートされていますか? つまり、要素ca はありえず、要素ac しか存在しない、と考えてよろしいですか?
can110

2018/12/12 03:28

「パターンを出力」部分の動作がよく分かりません。a,a,c→a,a,c,aa,ac,ac,aac なのでa;5,ac;5,c;5になるかと思うのですが 現状できているソースコードを提示ください。
Lhankor_Mhy

2018/12/12 03:31 編集

ああ、それ以前にお聞きすることがありましたね。 この要素は順序をユニークとしてみますか? つまり、要素ac と 要素ca は、違う要素、と考えてよろしいですか?
退会済みユーザー

退会済みユーザー

2018/12/12 04:12

そうですね。acとcaは別ですね。
Lhankor_Mhy

2018/12/12 05:00

「acとcaは別」ということは、abc と acb が別ということになるかと思います。 そうすると、 ac は abc に含まれない、と解釈していいでしょうか?
退会済みユーザー

退会済みユーザー

2018/12/12 05:03

acは出力されなくてabcは出力されます
Lhankor_Mhy

2018/12/12 05:11

もう少し確認させてください 以下のもののうち、cacc に 含まれるものはどれですか? cac ccc cca acc ca ac
退会済みユーザー

退会済みユーザー

2018/12/12 05:13

cca以外出力されます。
can110

2018/12/12 05:13

['a','a','c']からはどんなパターンが生成されますか?
Lhankor_Mhy

2018/12/12 05:19

もうひとつだけ。 abc は adccccbbbbdc に含まれる、ということでいいのですよね?
退会済みユーザー

退会済みユーザー

2018/12/12 05:19

はい!
Lhankor_Mhy

2018/12/12 06:00

コードは書けたのですが、その前にお聞かせください。 質問者の質問一覧を見ると、解決した質問が0/8件でした。 回答が不満なのかな、と思ったのですが、その割には回答にもほぼコメントをしていないようでした。 回答さえ得られればいい、コミュニケーションを取りたくない、など、なにかポリシーがあるのでしょうか?
退会済みユーザー

退会済みユーザー

2018/12/12 06:01

特になくてあまりみてないだけです。時間あるときに更新しますね。
Lhankor_Mhy

2018/12/12 06:04

回答を見てないのであれば、回答は不要ということですか?
退会済みユーザー

退会済みユーザー

2018/12/12 06:05

回答は見てるけど他のも参考にしたい質問もあってベストアンサーとかなかなかきめてないだけですよ
can110

2018/12/12 06:12

私の質問も無視でしょうか?
Lhankor_Mhy

2018/12/12 06:12

どうも、私と質問者さんとは、文化圏が違うようですね…… https://teratail.com/help/question-tips#questionTips4-2 ここを参考にしていただけるとうれしいのですが、それでも自分流で利用されるのであれば、この場で異文化交流するつもりはありませんので、私は手を引きます。
退会済みユーザー

退会済みユーザー

2018/12/12 06:14

できてないんならコメントしなくて結構です
can110

2018/12/12 06:16

把握できた部分についてはできてますが? ただ、分からない部分を聞いているだけです。
退会済みユーザー

退会済みユーザー

2018/12/12 06:30

答える気もないのに書き込みしないでいいです。 他の人も見てますしなによりお互いにとって時間の無駄
can110

2018/12/12 06:36

繰り返しになりますが、質問には不完全な部分があります。 それを追記・修正することで、同じような問題に出会った他人にも役立てるよう促しているだけです。 そもそも答えを求めておらず、他人にも貢献するつもりがないのならコメントせず質問を閉じてください。時間の無駄です。
Lhankor_Mhy

2018/12/12 06:50

なるほど、質問者さんのポリシーは分かりました。 お互いに接触しない方が平和ですね。 しかしこれは、ブロック機能が欲しくなるなあ…… 「できてないんならコメントしなくて結構」と言われたのが癪なので、この質問だけは回答しときます。 あと、あまりスマートな解決ではないと思うので、can110さんの回答が見たい……
guest

回答3

0

Python

1 2# リストから、他の要素に内包される要素を除く 3# 4# lst : [('a',),('a','c',),('c',),('a','b',),('b','a',)] など 5# order : 文字の並びを考慮するか 6# 7def remove_comprehension_items( lst, order = False): 8 ret = [] 9 for idx_src,val_src in enumerate(lst): 10 isAdd = True 11 for idx_dst,val_dst in enumerate(lst): 12 if idx_src != idx_dst: # 自身は対象外 13 14 if order: 15 import re 16 r = re.compile('.*' + '.*'.join(val_src) + '.*') # 順番に出現。正規表現で。 17 isComp = r.match(''.join(val_dst)) 18 19 else: 20 isComp = set(val_src).issubset(set(val_dst)) # 部分集合 21 22 if isComp: 23 isAdd = False 24 break 25 if isAdd: 26 ret.append(val_src) 27 28 return ret 29 30l = [('c', 'a', 'c', 'c'), ('c', 'c', 'a'), ('a', 'd', 'c', 'c', 'c', 'c', 'b', 'b', 'b', 'b', 'd', 'c')] 31 32print(remove_comprehension_items(l,True)) 33# [('c', 'a', 'c', 'c'), ('c', 'c', 'a'), ('a', 'd', 'c', 'c', 'c', 'c', 'b', 'b', 'b', 'b', 'd', 'c')] 34 35print(remove_comprehension_items(l,False)) 36# [('a', 'd', 'c', 'c', 'c', 'c', 'b', 'b', 'b', 'b', 'd', 'c')]

投稿2018/12/12 07:09

can110

総合スコア38234

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Lhankor_Mhy

2018/12/12 07:12

そうか、正規表現を使うやり方がありましたね。
can110

2018/12/12 07:13

正規表現でやれば簡単かと思いましたが、その外側のループが冗長になっちゃいました… ついでに、より自然な部分集合での判定もできるようにしてみました。
guest

0

python

1elementList = ['cacc', 'ccc', 'cca', 'abc', 'adccccbbbbdc', ] 2 3def test( container, sub ): 4 if container == sub: 5 return False 6 container = container[:] 7 for x in sub: 8 i = container.find(x) 9 if i == -1 : 10 return False 11 container = container[i+1:] 12 return True 13 14print ( [ e for e in elementList if all( not test( x, e ) for x in elementList ) ] ) 15 16""" 17['cacc', 'cca', 'adccccbbbbdc'] 18""" 19 20

投稿2018/12/12 06:51

Lhankor_Mhy

総合スコア35869

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Lhankor_Mhy

2018/12/12 06:55

まんまと質問者に釣られた感があるね!
退会済みユーザー

退会済みユーザー

2018/12/12 06:56

もう少しスマートな答えが欲しいかなあ
Lhankor_Mhy

2018/12/12 06:57

まさに「時間の無駄」!
guest

0

ベストアンサー

自己解決しました.
正直望んだものと違いましたのでべえストアンサーはありません.

投稿2018/12/13 01:37

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

can110

2018/12/13 01:42

どのように解決したか?ソースコードなどを記載ください。 本当は解決していなのなら、時間の無駄ですので無視してかまいません。
cvwqcbsgl2fl

2018/12/13 08:59

ほんとは解決してないのに悔しいからってむきになっているのがかわいいですね
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問