gpt4 book ai didi

python - 将字符串中的字符随机替换为当前字符以外的字符

转载 作者:行者123 更新时间:2023-12-05 03:16:39 25 4
gpt4 key购买 nike

假设我有一个字符串,我想用另一个字符串中定义的一组选项随机修改它。首先,我创建了原始字符串和可能的替换字符:

string1 = "abcabcabc"
replacement_chars = "abc"

然后我在论坛上找到了这个随机替换n个字符的功能:

def randomlyChangeNChar(word, value):
length = len(word)
word = list(word)
# This will select the distinct index for us to replace
k = random.sample(range(0, length), value)
for index in k:
# This will replace the characters at the specified index with the generated characters
word[index] = random.choice(replacement_chars)
# Finally print the string in the modified format.
return "".join(word)

除了一个异常(exception),这段代码可以满足我的要求——它不考虑 string1 中与随机替换字符匹配的字符。我知道问题出在我试图调整的函数中,我在 for 循环下预测,但我不确定要添加什么以防止替换字符等于 string1 中的旧字符。感谢所有建议,如果我让事情过于复杂,请教育我!

最佳答案

在您检索到的函数中,替换:

word[index] = random.choice(replacement_chars)

word[index] = random.choice(replacement_chars.replace(word[index],'')

会完成这项工作。它只是将 word[index](您要替换的字符)替换为 replacement_chars 字符串中的空字符串,有效地将其从替换字符中移除。

另一种方法,预计平均效率较低,是重新绘制,直到您获得与原始字符不同的字符:

也就是替换:

word[index] = random.choice(replacement_chars)

char = word[index]
while char == word[index]:
char = random.choice(replacement_chars)
word[index] = char

while True:
char = random.choice(replacement_chars)
if char != word[index]:
word[index] = char
break

警告:如果 replacement_chars 只有 1 个字符,当原始字符与替换字符相同时,这两种方法都会失败!

关于python - 将字符串中的字符随机替换为当前字符以外的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74585606/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com