2

わかりましたので、"|: 演算子を使用したい/使用する必要があります

リストがあるとします:

list = [{1,2,3},{2,3,4},{3,4,5},{4,5,6}]

set.intersection(*L) を使用せずにリストの交差点を見つける必要があります

理想的には、for ループ (またはネストされた for ループ) を持つ関数を使用して、リスト内のすべてのセットの交差を取得したいと考えています。

isIntersction(L) = {1,2,3,4,5,6}

ありがとう

4

3 に答える 3

3
>>> L=[{1,2,3},{2,3,4},{3,4,5},{4,5,6}]
>>> from itertools import chain
>>> set(chain.from_iterable(L))
{1, 2, 3, 4, 5, 6}
于 2013-07-04T03:36:10.590 に答える
1

リスト内包表記を使用して、これを試してください

list = [{1,2,3},{2,3,4},{3,4,5},{4,5,6}]
b = []
[b.append(x) for c in list for x in c if x not in b]
print b # or set(b)

出力:

[1, 2, 3, 4, 5, 6]

出力をセットにしたい場合は、これを試してください。

b = set([])
[b.add(x) for c in list for x in c if x not in b]
print b

出力:

set([1, 2, 3, 4, 5, 6]) #or {1, 2, 3, 4, 5, 6}

関数が必要な場合は、これを試してください:

def Union(L):
    b = []
    [b.append(x) for c in L for x in c if x not in b]
    return set(b)
于 2013-07-04T03:38:31.603 に答える