- くだすれPython(超初心者用) その27©2ch.net
887 :デフォルトの名無しさん[sage]:2015/11/07(土) 13:56:55.26 ID:4yddep+9 - 3つ以上の積集合の結果を出力したいのですが
data = [{5, 6, 7, 9, 10, 11, 13, 14, 15}, {0, 2, 3, 8, 10, 11, 12, 14, 15}, {0, 1, 3, 4, 5, 7, 12, 13, 15}] 個数が固定の場合は data[0] & data[1] & data[2] とすればできるのですが 空のsetだと積集合できないのでいい方法ないでしょうか?
| - くだすれPython(超初心者用) その27©2ch.net
888 :887[sage]:2015/11/07(土) 14:11:29.67 ID:4yddep+9 - >>887
すみませんできました。 data = [{5, 6, 7, 9, 10, 11, 13, 14, 15}, {0, 2, 3, 8, 10, 11, 12, 14, 15}, {0, 1, 3, 4, 5, 7, 12, 13, 15}] if len(data) > 2: ans = data[0] for i in data[1:]: ans &= i else: ans = data[0]
| - くだすれPython(超初心者用) その27©2ch.net
889 :デフォルトの名無しさん[sage]:2015/11/07(土) 14:15:11.47 ID:4yddep+9 - if len(data) > 1:
の間違えでした
| - くだすれPython(超初心者用) その27©2ch.net
894 :887[sage]:2015/11/07(土) 16:32:21.23 ID:4yddep+9 - >>890
上の方はよくわからないので勉強します。 functoolsのreduceのサンプルを参考に http://docs.python.jp/3/library/functools.html reduce(lambda x, y: x+y, [1, 2, 3, 4, 5]) は ((((1+2)+3)+4)+5) functools.reduce(lambda x, y: x & y, data) これでも同様の結果ができました。 ありがとうございます。
|
|