我正在学习python并正在阅读我的教程。我遇到了这段代码,想知道是否可以使用简单的循环替换它而不使用内置的.join()
return choice("".join(x * y for x, y in items))
有人可以帮我这个吗?
答案 0 :(得分:5)
你可以:
value = ''
for x, y in items:
value += x * y
return choice(value)
但要知道这会慢一些,因为你现在必须为items
上的每次迭代构建一个新的字符串值。 ''.join()
只需构建一个新字符串对象。
如果choice()
是random.choice()
,x
是一个字符串而y
是一个整数,这是一个加权随机选择函数,您还应该能够使用列表:
value = []
for x, y in items:
value += list(x) * y
return choice(value)