找出奇数位置的最优雅方法

我有一个包含 3 个字符串的列表,其中两个字符串始终相等。我想找出那个奇怪的。这些问题听起来非常简单,但我一直无法找到一种真正优雅的方法来做到这一点。

例如,列表lst = ['foo', 'bar', 'foo'], 应返回1。我目前的做法是这样的:

f = lambda x, y, z: {(0, 0): 0, (0, 1): 1}.get((x == y, x == z), 2)
ans = f(*lst)

这里有更好的方法吗?

回答

您可以查找最后一个值的第一次出现:

ans = (1, 0, 2)[lst.index(lst[2])]

或者,如果您对 index-1而不是2

ans = 1 - lst.index(lst[2])


以上是找出奇数位置的最优雅方法的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>