将一个字符串添加到另一个字符串
我现在遇到了一个问题:
我想要高效地把字符串添加到其他字符串上,所以我查了很多方法和技巧,找到了一个“最快”的方法。
但是我完全搞不懂它到底是怎么工作的:
def method6():
return ''.join([`num` for num in xrange(loop_count)])
来自 这个链接(方法6)
特别是 ([`num` for num in xrange(loop_count)])
让我完全困惑。
4 个回答
2
括号里的那部分是一个列表推导式,可以说是Python中最强大的功能之一。它通过迭代生成一个列表。你可以查一下相关的文档来了解更多。用反引号把num转换成字符串并不是个好主意,建议用str(num)或者类似的方法。
join()是字符串类中的一个方法。它接受一个字符串列表,并返回一个由这些字符串组成的单一字符串,字符串之间用“self”(也就是调用这个方法的字符串)来分隔。这里的诀窍是,join()是直接从字符串字面量''调用的,这在Python中是允许的。这段代码的作用是生成一个字符串,内容是xrange(loop_count)中每个元素的字符串形式,并且没有任何分隔。
2
xrange() 是一个比 range() 更快的版本,它是用 C 语言写的。
反引号表示法 -- num
,可以把一个变量转成字符串,和 str(num) 是一样的。
[x for x in y] 叫做列表推导式,简单来说就是一种可以用一行代码写的循环,它的结果是一个列表。所以总的来说,你的代码在意思上和下面的代码是一样的,但运行得更快,因为列表推导式和 xrange
比 for 循环和 range
更快:
z = []
for i in range(loop_count):
z.append(str(i))
return "".join(z)