gpt4 book ai didi

python - 在两个值之间切换的 Pythonic 方式是什么?

转载 作者:行者123 更新时间:2023-12-02 02:08:39 25 4
gpt4 key购买 nike

编辑:我原来的问题有点不清楚,所以我已经更新了。很抱歉给您带来不便。

假设我有一些不同的值:ABCD、...、以及一些等于其中之一的变量x。此外,假设我知道 A 的相反数是 BC 的相反数是 D,依此类推.

我想要的是一些干净的方法来镜像 bool 值x = not x但对于这些通用值。现在我能想到的就是一个可怕的 if-else 链:

if x == A:
x = B
elif x == B:
x = A
elif x == C:
x = D
elif x == D:
x = C
elif ...

为了说明我所追求的目标,在 Haskell 中我可以将其定义为:

foo :: x -> x
foo A = B
foo B = A
foo C = D
foo D = C
...

然后只需调用foo x即可。

最佳答案

构建一个具有双向映射的字典。类似的东西

pairs = [(A, B), (C, D), ...]
d = dict([*pairs, *map(reversed, pairs)])

然后x = d[x]

如果出于某种原因您不喜欢实例化对和反向对的完整列表的想法,您可以使用itertools.chain:

d = dict(chain(pairs, map(reversed, pairs)))

关于python - 在两个值之间切换的 Pythonic 方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68037672/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com