トップページ > プログラム > 2015年11月07日 > 4yddep+9

書き込み順位&時間帯一覧

9 位/192 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000000120100000004



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
887
くだすれPython(超初心者用) その27©2ch.net

書き込みレス一覧

くだすれ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)

これでも同様の結果ができました。
ありがとうございます。


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。