python对列表单词排序,Python-如何对脚本构建的列表进行排序以复制另一个单词?...

本文探讨如何改进Python实现的绞刑游戏,通过检查玩家猜测并更新'correct'和'guessed'列表,确保按顺序存储字母,以便于匹配隐藏单词。作者寻求解决重复字母计数和排序问题,同时分享了代码片段和可能的解决方案。
摘要由CSDN通过智能技术生成

我正在尝试执行一个绞刑游戏。我希望函数的一部分检查字母是否正确或不正确。当一个字母被发现是正确的,它将把字母放在一个"用过的字母"列表和一个"正确的字母列表"中,正确的字母列表将随着游戏的进行而建立。我想它排序的名单,以匹配隐藏的字,因为游戏正在进行。

例如,让我们用"硬件"这个词如果有人猜到"e,a,h",结果会是

correct = ["e","a","h"]

我想把清单分类,这样就可以了

correct = ["h","a","e"]

然后

推测r后的correct = ["h","a","r","a","e"]。

我还需要知道它是否也会看到"A"在那里两次,并放置两次。

我的代码不允许你赢,但你可以输。这是一项正在进行的工作。我也不能把信放在左边的柜台上工作。我让代码打印列表,以检查是否添加了字母。它是。所以我不知道上面是什么。

def hangman():

correct = []

guessed = []

guess =""

words = ["source","alpha","patch","system"]

sWord = random.choice(words)

wLen = len(sWord)

cLen = len(correct)

remaining = int(wLen - cLen)

print"Welcome to hangman.

"

print"You've got 3 tries or the guy dies."

turns = 3

while turns > 0:

guess = str(raw_input("Take a guess. >"))

if guess in sWord:

correct.append(guess)

guessed.append(guess)

print"Great!, %d letters left." % remaining

else:

print"Incorrect, this poor guy's life is in your hands."

guessed.append(guess)

turns -= 1

print"You have %d turns left." % turns

if turns == 0:

print"HE'S DEAD AND IT'S ALL YOUR FAULT! ARE YOU HAPPY?"

print"YOU LOST ON PURPOSE, DIDN'T YOU?!"

hangman()

你的密码在哪里?张贴一个简短的自我包含的例子。

@一定要把它放在里面。

我不完全清楚所期望的行为,因为:

correct = ["h","a","r","a","e"] after r has been guessed.

这很奇怪,因为a只被猜测过一次,但每次出现在hardware中都会出现。r也应该出现两次吗?如果这是正确的行为,那么可以使用非常简单的列表理解:

def result(guesses, key):

print [c for c in key if c in guesses]

In [560]: result('eah', 'hardware')

['h', 'a', 'a', 'e']

In [561]: result('eahr', 'hardware')

['h', 'a', 'r', 'a', 'r', 'e']

迭代键中的字母,如果字母被用作"猜测",则将其包含在内。

您也可以通过使用以下命令,让它为未找到的字符插入一个占位符:

def result(guesses, key):

print [c if c in guesses else '_' for c in key]

print ' '.join([c if c in guesses else '_' for c in key])

In [567]: result('eah', 'hardware')

['h', 'a', '_', '_', '_', 'a', '_', 'e']

h a _ _ _ a _ e

In [568]: result('eahr', 'hardware')

['h', 'a', 'r', '_', '_', 'a', 'r', 'e']

h a r _ _ a r e

In [569]: result('eahrzw12', 'hardware')

['h', 'a', 'r', '_', 'w', 'a', 'r', 'e']

h a r _ w a r e

你说得对,R是单身,有2个A,我对细节的关注不如程序员应该关注的那么多。不过,我是个笨蛋。我假设你假设我知道如何创建一个密钥,我不知道。除非你是这样做的,否则那是好的。谢谢你的帮助,我希望我能试试看。可悲的是,我正在工作,午饭时在电话里看这个。

"key"只是一个字符串。在你的例子中,"剑"。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值