使用python替换.join()

Rac*_*hel 0 python

我正在学习python并正在阅读我的教程.我遇到了这段代码,想知道是否可以使用简单的循环替换它而不使用内置的.join()

return choice("".join(x * y for x, y in items))
Run Code Online (Sandbox Code Playgroud)

有人可以帮我弄这个吗?

Mar*_*ers 5

您可以:

value = ''
for x, y in items:
    value += x * y
return choice(value)
Run Code Online (Sandbox Code Playgroud)

但是要知道这会慢一些,因为你现在必须为每次迭代构建一个新的字符串值items.该''.join()只需要建立一个新的字符串对象.

如果choice()random.choice(),x是一个字符串和y一个整数,并且这是一个加权随机选择函数,你还应该能够使用一个列表:

value = []
for x, y in items:
    value += list(x) * y
return choice(value)
Run Code Online (Sandbox Code Playgroud)