【发布时间】:2021-05-28 23:26:57
【问题描述】:
我想构建一个程序,用 shuflo 列表中的每个项目之一替换 12345,但如果 shuflo 列表包含从 1 到 5 的数字,它也会替换它们。
这是我的代码:
shuflo = [1, 2, 3, 4, 5]
def build(x):
random.shuffle(shuflo)
lock = shuflo
lack = str(x)
lack = lack.replace("1", str(lock[0]))
lack = lack.replace("2", str(lock[1]))
lack = lack.replace("3", str(lock[2]))
lack = lack.replace("4", str(lock[3]))
lack = lack.replace("5", str(lock[4]))
Ponf = [lack, eval(lack)]
return Ponf
print(build("(1)+(2)+(3)+(4)+(5)"))
典型的结果是:
['(3)+(1)+(2)+(3)+(5)', 14]
在列表 shuflo 中只有 3 个中的一个,但有些元素被替换了两次,所以它不起作用。
我该如何解决这个问题???
【问题讨论】:
-
说 1 被 3 替换。当你替换 3 时,你将替换原来的 3 和已经更改的 1。您需要一次完成所有更改。
-
@Reti43 我该怎么做?
标签: python string random replace