以下代码检查 x
和 y
是否是不同的值(变量 x
、y
、z
只能有值 a
、b
或 c
),如果是,则设置 z
到第三个字符:
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()
我假设您的代码中的三种情况之一成立。如果是这种情况,集合 set(("a", "b", "c")) - set((x, y))
将由单个元素组成,返回通过 pop()
.
编辑:正如 Raymond Hettinger 在评论中所建议的,您还可以使用元组解包从集合中提取单个元素:
z, = set(("a", "b", "c")) - set((x, y))
关于python - 如何更简洁地找到缺失值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8792440/