在Python中连接字符串的最有效方法

2024-09-28 23:21:44 发布

您现在位置:Python中文网/ 问答频道 /正文

在采访中,我得到了一段Python代码:

"".join([x for x in "\x63\x6c\x75\x62"])

面试官问我:你能让这段代码更快一点吗?输出应该保持完全相同。在

可以说,我没能回答这个问题。我想知道是否有什么可以帮助我理解如何优化这段代码?在

非常感谢。在


Tags: 代码inforjoinx75x62面试官x63
3条回答

无事可做:

>>> res = "\x63\x6c\x75\x62"
>>> res
'club'

只是进入毒刺的方式不同而已。在

%%timeit
"".join([x for x in "\x63\x6c\x75\x62"])
289 ns ± 3.54 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)

输出club。在

^{pr2}$

输出club。在

[x代表x…]在这里没用。删除它会使代码运行速度提高4倍。在

"".join([x for x in "\x63\x6c\x75\x62"])

是一种非常多余的方法:

^{pr2}$

一般来说,你不应该这样做

x for x in "\x63\x6c\x75\x62"

这是没有用的,因为您没有以任何方式转换或过滤x(当然,它速度较慢)。在

最后一件事,如果面试官想删除{},他/她也错了。在

"".join(x for x in "\x63\x6c\x75\x62")

使用listcomp的要慢一些,因为join必须构建一个list(在创建有用的理解时记住这一点很有用,与此不同,请参见Joining strings. Generator or list comprehension?

结论:让我们而不是加入club

相关问题 更多 >