2024-10-04 05:34:13 发布
网友
假设我必须将一行拆分为一个键和一个值,并将其放入名为props的dict。让分隔符为=。我可以这样做:
props
dict
=
props[line.partition('=')[0]] = line.partition('=')[2]
或者这个:
第一个表单将对字符串进行两次分区还是优化为只进行一次?我想它是依赖于实现的,但是常见的实现会这样做吗(cpythonjython,IronPython)?我知道这是过早的乐观。我是python新手,我只是好奇而已。在
在第一种情况下,字符串被拆分两次。在
作为一种动态语言,Python不能确定line值是不可变的,.partition()方法每次都会返回相同的结果。它别无选择,只能每次执行line.partition('=')。在
line
.partition()
line.partition('=')
Python字节码编译器/解释器非常简单(我敢说是原语),除了一些非常基本的常量折叠和抛出断言(如果被要求)之外,不会执行任何优化。当然没有通用的子表达式消除通行证给你。在
在第一种情况下,字符串被拆分两次。在
作为一种动态语言,Python不能确定
line
值是不可变的,.partition()
方法每次都会返回相同的结果。它别无选择,只能每次执行line.partition('=')
。在Python字节码编译器/解释器非常简单(我敢说是原语),除了一些非常基本的常量折叠和抛出断言(如果被要求)之外,不会执行任何优化。当然没有通用的子表达式消除通行证给你。在
相关问题 更多 >
编程相关推荐