python开关语句_在python2.7.3中使用字典作为开关语句

我喜欢使用字典作为switch语句的一种形式,通过设置布尔值作为键。示例:>>> def f(a):

... return {True: -a, a==0: 0, a > 0: a}[True]

...

>>> f(-3)

3

>>> f(3)

3

>>> f(0)

0

密钥True作为else/default大小写,并且只有在没有其他密钥被计算为True时才会返回。我猜这是假设对字典进行迭代的某种计算顺序。在

现在看一下最新版本的分支2.6、2.7、3.1和3.2的以下摘录:Hash randomization causes the iteration order of dicts and sets to be

unpredictable and differ across Python runs. Python has never

guaranteed iteration order of keys in a dict or set, and applications

are advised to never rely on it. Historically, dict iteration order

has not changed very often across releases and has always remained

consistent between successive executions of Python. Thus, some

existing applications may be relying on dict or set ordering.

这是否意味着使用dict作为开关调用将不再可能?或者我应该使用其他类(比如OrderedDict或其他什么)?或者也许我已经完全不在了,这根本不应该影响到这一点?在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值