2016-05-24 18 views
-3

私は以下の両方のケースを達成するために、1回の操作を探しています。このpythonを行う方法はありますか?Pythonで操作を設定する

ケース1:
a = set([1,2])b = set([1,2,3])
私は簡単交差点で結果[1,2]を、したいです。今度はset(a)が空になり、他のセットとの空のセットの交差を実行すると空のセットになります。

ケース2:
a = set([])b = set([1,2,3]) => set([1,2,3])すなわちセットB

どのように私は、ケース1と、一組の動作とケース2を達成することができます。

+0

ケース2であることがどのような動作を想定していますか?連合? – khelwood

+0

1つの操作で 'union'と' intersection'の両方を実行しますか? – Shreevardhan

+6

あなたは何を求めているのかは不明です。矛盾した振る舞いを持つ単一のセット操作が必要なように見えます。あなたは精緻化できますか? –

答えて

1

使用andor、短絡が所望の結果生成するであろう:

>>> a = {1,2} 
>>> b = {1,2,3} 
>>> a and a&b or b 
{1, 2} 
>>> a = {} 
>>> b = {1,2,3} 
>>> a and a&b or b 
{1, 2, 3} 
+0

これは 'a = {1,2}'、 'b = {3,4}'の意図した結果(空の交点)を与えていないと思います。 – khelwood

+1

あなたは正しいです。私はその事件をテストするとは思わなかった。 @ProgramQuestions、これを受け入れることができないので、私はそれを削除できますか? – TigerhawkT3

3

何をしたいことは、「aが空であれば、私に交差点を与え、それ以外の場合はちょうど私bを与える」であれば、何をしたいことは次のとおりです。

result = (a&b) if a else b 

「私が使用したくありませんifその値をチェックするための条件 "は要件としてはあまり意味がありません。これは、ifのためのものです:いくつかの条件に基づいて動作が変化します。

関連する問題