我正在学习python并正在阅读我的教程.我遇到了这段代码,想知道是否可以使用简单的循环替换它而不使用内置的.join()
return choice("".join(x * y for x, y in items))
Run Code Online (Sandbox Code Playgroud)
有人可以帮我弄这个吗?
您可以:
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)