組み合わせ一覧のリストを作りたいのですが躓いてしまいました。
ご教授頂けたらと思います。
import itertools def has_duplicates(seq): return len(seq) != len(set(seq)) A = ('a', 'b', 'c') B = ('a', 'b', 'c') C = ('d', 'e') a = list(itertools.product(A, B, C))
aに格納
[('a', 'a', 'd'),
('a', 'a', 'e'),
('a', 'b', 'd'),
('a', 'b', 'e'),
('a', 'c', 'd'),
('a', 'c', 'e'),
('b', 'a', 'd'),
('b', 'a', 'e'),
('b', 'b', 'd'),
('b', 'b', 'e'),
('b', 'c', 'd'),
('b', 'c', 'e'),
('c', 'a', 'd'),
('c', 'a', 'e'),
('c', 'b', 'd'),
('c', 'b', 'e'),
('c', 'c', 'd'),
('c', 'c', 'e')]
ここから重複している箇所を削除したいです。
for x in a: print(has_duplicates(x))
True
True
False
False
False
False
False
False
True
True
False
False
False
False
False
False
True
True
具体的にはTrueの箇所を削除したいです。
最終的にしたいのは
[('a', 'b', 'd'),
('a', 'b', 'e'),
('a', 'c', 'd'),
('a', 'c', 'e'),
('b', 'a', 'd'),
('b', 'a', 'e'),
('b', 'c', 'd'),
('b', 'c', 'e'),
('c', 'a', 'd'),
('c', 'a', 'e'),
('c', 'b', 'd'),
('c', 'b', 'e')]
としたいです。
また、もしこの回りくどい方法を使わずやる方法がありましたら
教えて頂けたら助かります。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/10/26 10:42
2019/10/26 10:57