gpt4 book ai didi

Python-替换字符串中特定位置出现的所有字母

转载 作者:行者123 更新时间:2023-11-28 22:04:56 26 4
gpt4 key购买 nike

尝试用 Python 制作电视游戏节目“Lingo”。

在游戏中,玩家试图猜测一个由五个字母组成的单词。他们从我随机猜测一个五个字母的单词开始。然后游戏板会亮起,显示他们猜出的单词与实际单词的匹配程度。

例如,如果真实单词是“gorge”而玩家猜测“eagle”——棋盘将显示“e”和“g”在真实单词中,但位置不正确关于真正的“峡谷”这个词。 (g 在 [0] 和 [3] 索引中,而在鹰中它们在 [2] 索引中)。

如果这个词是“happy”,而用户猜的是“harpy”,则看板会显示其中三个字母在真实的单词中,并且它们的位置是正确的。 (嘿嘿)。

在 Python 实现中,我强调一个字母是正确的,但在错误的位置,下面有一个“~”。如果它是正确的并且在正确的位置,我会放一个“!”在它下面。

重要的函数如下所示:

  wordGuess = input("Guess a letter: ")[0:5]
for letter in wordGuess:
if letter in realWord:
if wordGuess.find(letter) == realWord.find(letter)

//不知道从这里做什么

如果一个正确的字母不止一次出现,其中一个字母与 realWord 中该字母的位置不正确——我该如何检测它?

例如,如果真正的词是“lasts”,有人猜“brass”,则 brass 中的第一个“s”是正确的字母,但位置不正确,而第二个“s”是正确的字母和正确的位置。

那么实现一个函数的最佳方法是什么,该函数可以检查字母是否正确并位于正确的位置(并用 ! 表示它)或者用 ~ 表示它是错误位置的正确字母

最佳答案

无论位置如何查找常用字母:

In [1]: set('harpy') & set('happy')
Out[1]: set(['a', 'h', 'p', 'y'])

要获取一个 bool 标志,指示 'harpy' 的每个字母是否出现在 'happy' 中的任何位置:

In [17]: [l in 'happy' for l in 'harpy']
Out[17]: [True, True, False, True, True]

在上面的代码中,'happy' 可以替换为第一个片段中设置的交集。

最后,为每个位置获取一个 bool 标志,指示字母是否在正确的位置:

In [2]: [l==r for l,r in zip('happy','harpy')]
Out[2]: [True, True, False, True, True]

将以上内容组合成一个完整的解决方案:

In [49]: real='lasts'

In [50]: guess='brass'

In [51]: exact=[l==r for l,r in zip(real,guess)]

In [52]: approx=[l in real for l in guess]

In [53]: chars=[[' ','~'],['!','!']]

In [54]: print guess, '\n', ''.join(chars[e][a] for e,a in zip(exact,approx))
brass
~~!

(如果您想知道如何使用 bool 值对数组进行索引,它们会隐式转换为整数:False=0 和 True=1。)

关于Python-替换字符串中特定位置出现的所有字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6054856/

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