python - python中固定位置的字符串替换

标签 python string replace

我正在尝试做一个问答节目,但我遇到了答案问题。 我想要的是替换答案的字符以显示为提示。示例:

answer = "I am just an example"
hintwouldbe = "I a_ j___ a_ e______"
hint2mightbe = "I am j___ an e_a___e"

我不太确定如何制作它。尝试使用循环(对于答案中的 c)和 string.replace 方法。还尝试了一些 re.translate 和 dicts,但我得到的代码非常大并且很难理解。一定有一个更简单的方法所以...我在这里。

您认为哪种方式最有效/最容易实现这一目标?

编辑如果我可以选择要替换的位置,那就太好了。例如:如果单词有 6 个字符,则将 1,3 和 6 个字符替换为 _

编辑2:正确答案

经过一些更改后,我选择 Thomas Orozco 答案为有效,非常容易理解和重新创建:

    from random import random
    answer = "anything in here"
    pista = [char if random() < 0.8 else "_" for char in answer]
    pista2 = "".join(pista)
    print(pista2)

最佳答案

字符串不能正确表示您想要执行的操作,列表会更好。

import random

def make_hint(chars, frequency):
    hint_chars = [char if random.random() < frequency else "_" for char in chars]
    return "".join(hint_chars)

answer = "I am just an example"

print make_hint(answer, 0.3)
print make_hint(answer, 0.5)

当然,这只是一个例子。在这里,我使用 random 来显示 30% 或 50% 的字符,但您可以使用不同的实现。

请记住,您可以在运行转换之前先对答案调用 .split() 以将其拆分为单词:

print " ".join(make_hint(word, 0.3) for word in answer.split())

关于python - python中固定位置的字符串替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19479934/

相关文章:

使用指向 uint64_t 的指针复制 C 中的自定义字符串会导致段错误

java - String[] 被垃圾回收后,String[] 内的字符串会发生什么?

java - 使用正则表达式获取字符串的首字母,同时保留标点符号和空格

php - 更新 mysql 中的序列化数组(不反序列化?)

python - 为什么我的 "import requests"失败并出现 ImportError : No module named 'requests.packages.urllib3' ?

python - 在Python中根据条件替换图像像素颜色

java - 是否可以在 C# 或 JAVA 中开发一些基于字符串的搜索条件?

linux - 在 linux 中查找字符串并替换另一行

python - 在 python 脚本中使用 mitmproxy

python - 无法使用给定 session 评估张量 : the tensor's graph is different from the session's graph