每个学期我至少有一个 Python 学生使用 dict.update()
添加单个键/值对,即:
mydict.update({'newkey':'newvalue'})
而不是
mydict['newkey'] = 'newvalue'
我不教这种方法,我不知道他们在哪里可以找到这样的例子,但我告诉他们不要这样做,因为它效率较低(可能会创建一个新的 2 元素字典)并且因为它是非标准。
老实说,我可以理解使用可见方法而不是这种语法的愿望 - 它可能感觉与其他方法调用更一致。但我认为这看起来像是一种新手方法。
在这一点上有人可以提供任何智慧吗?
最佳答案
基准测试表明您对其性能影响的怀疑似乎是正确的:
$ python -m timeit -s 'd = {"key": "value"}' 'd["key"] = "value"'
10000000 loops, best of 3: 0.0741 usec per loop
$ python -m timeit -s 'd = {"key": "value"}' 'd.update(key="value")'
1000000 loops, best of 3: 0.294 usec per loop
$ python -m timeit -s 'd = {"key": "value"}' 'd.update({"key": "value"})'
1000000 loops, best of 3: 0.461 usec per loop
也就是说,它在我的机器上慢了大约六倍。但是,如果您需要最高性能,Python 已经不是您会使用的语言,所以我只建议使用在这种情况下最易读的语言。对于许多事情,这将是 []
方式,尽管 update
在这样的情况下可能更具可读性:
configuration.update(
timeout=60,
host='example.com',
)
……或类似的东西。
关于python dict.update 与下标添加单个键/值对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15456158/