🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Python

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

Q&A

解決済

1回答

568閲覧

set関数を応用してリスト同士の非共通要素を取り出したい

nijihan

総合スコア19

Python

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

0グッド

0クリップ

投稿2019/12/22 08:50

python初心者です。

AにもBにも含まれていないmorphの要素を抽出したいです。
イメージは「result = morph - (A + B)」です。

python

1morph =[['akuan', 'AKUAN', '1'], 2 ['aku', 'AKUAN', '0'], 3 ['alangkah', 'ALANGKAH', '0'], 4 ['alang', 'ALANGKAH', '0'], 5 ['alang', 'ALangkah', '1'], 6 ['alangkah', 'ALangkah', '0']] 7 8A = [['akuan', 'AKUAN', '1'], 9 ['aku', 'AKUAN', '0']] 10 11B = [['alangkah', 'ALANGKAH', '0'], 12 ['alang', 'ALANGKAH', '0']]

morphからAに含まれている要素を除くことはできるのですが(下にプログラムを書いてみました)、「AにもBにも含まれない」という処理の仕方が分かりませんでした。

result = list(map(list, set(map(tuple, morph)) ^ set(map(tuple, A))))

ご教示お願い致します。

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

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

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

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

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

guest

回答1

0

ベストアンサー

分かりやすいように一旦変数に代入する形で書いてみました。

python

1setM = set(map(tuple, morph)) 2setA = set(map(tuple, A)) 3setB = set(map(tuple, B)) 4 5# A と B の和集合を求める 6setAB = setA | setB 7 8# morph 集合から A または B に含まれる要素を取り除く 9setResult = setM - setAB 10 11# list で結果を得るには 12result = [list(x) for x in setM - setAB]

投稿2019/12/22 09:13

kit494way

総合スコア317

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問