面试的时候给了一段Python代码:
"".join([x for x in "\x63\x6c\x75\x62"])
面试官问我:你能否通过对现有代码进行微小调整,使这段代码更快?输出应该保持完全相同。
足以说明,我没有通过这道题。我想知道是否有什么可以帮助我理解如何优化这段代码?
非常感谢。
请您参考如下方法:
"".join([x for x in "\x63\x6c\x75\x62"])
是一种非常多余的做法:
"\x63\x6c\x75\x62"
一般情况下,你不应该这样做
x for x in "\x63\x6c\x75\x62"
这是无用的,因为您不以任何方式转换或过滤 x(当然速度更慢)。
最后一件事,如果面试官打算删除 [] 他/她也是错的。
"".join(x for x in "\x63\x6c\x75\x62")
比使用 listcomp 的 慢,因为 join 无论如何都必须构建一个 list(在创建 useful< 时记住这一点很有用/em> 理解,与那个不同,参见 Joining strings. Generator or list comprehension? )
结论:让我们不加入俱乐部
