1. ホーム
  2. python

不足値をより簡潔に求めるにはどうしたらよいですか?

2023-08-24 18:01:39

質問

次のコードは xy は異なる値です(変数 x , y , z は値のみを持つことができます a , b または c ) を設定し、もしそうなら z を3文字目に設定します。

if x == 'a' and y == 'b' or x == 'b' and y == 'a':
    z = 'c'
elif x == 'b' and y == 'c' or x == 'c' and y == 'b':
    z = 'a'
elif x == 'a' and y == 'c' or x == 'c' and y == 'a':
    z = 'b'

もっと、簡潔で読みやすく、効率的な方法でこれを行うことは可能でしょうか?

どのように解決するのですか?

z = (set(("a", "b", "c")) - set((x, y))).pop()

あなたのコードにある3つのケースのうち1つが成立していると仮定しています。 もしそうであれば、セット set(("a", "b", "c")) - set((x, y)) は単一の要素で構成され、それが pop() .

編集してください。 Raymond Hettingerがコメントで提案したように、セットから単一の要素を抽出するためにタプルアンパッキングを使用することもできます。

z, = set(("a", "b", "c")) - set((x, y))