基本上,我需要创建一个python文件,它接受一些随机单词的输入,并打印回vinic单词和非vinic单词。葡萄酒词是指每个字母都有一个相邻的字母的单词。E、 G铁匠是邻接的,因为每个字母至少有一个相邻的字母,所以程序需要如下功能:
Line: The blacksmith fights in the tower
Vicinals: blacksmith fights
Non-vicinals: The in the tower
Line: The baker fights in the street
Vicinals: fights
Non-vicinals: The in the
Line: The butcher flees from the scene
Non-vicinals: The from the scene
Line:
到目前为止,基本上我还没有把它放到一个循环中,但是看起来我的ord比较不起作用,而且由于某种原因,我得到了一个糟糕的输出。在
^{pr2}$现在我在第一个例子中得到的输出:
Line: The blacksmith fights in the tower
Non-vicinals: tower
我做错了什么?为什么我没有得到想要的输出? 我的代码也很长很难看。有没有更快的方法使用lambdas/理解等?在
感谢任何帮助,这已经困扰我好几个小时了! 谢谢, Itechmatrix公司
这是来自当前的NCSS Challenge(高级)的一个问题,这是一个编程竞赛。请不要为用户24492工作。在
用户24492/Itechmatrix,有论坛和导师可供您选择。请用那些代替。在
一些提示:
创建函数:
现在你已经把你的邻域逻辑从主循环中分离出来了。然后,您可以独立地测试该函数,并确保它正在执行您想要的操作。在
然后你就可以简单地对每个词进行调用。在
^{pr2}$例如。在
您可以将这两者结合起来,以便每个单词只运行一次is\u-vical函数:
然后给出一个列表:
注:
我上面的功能可能不完全正确。但我相信这是正确的方向。:-)
这在(至少)两个功能中更容易实现:
现在我们可以开发和测试
is_vicinal
,而不必担心任何显示或输入内容。在接下来,请注意,您只想处理唯一字符,而不关心
^{pr2}$word
内的顺序(建议使用set
),并且希望查看相邻字符(建议排序):现在我们想
group
这些字符(我将把这个实现留给您),这样:现在我们的
is_vicinal
函数变得很简单:现在您只需为
'a'
和'z'
添加额外的逻辑!你可以把它放在group
或者is_vicinal
-实验中,看看它在哪里最适合。在注意,至少根据definition in Wikipedia的说法,非邻接函数并不像
not is_vicinal
那么简单,所以您可能需要编写另一个函数def is_non_vicinal(word):
来处理这个问题。这将非常类似于is_vicinal
函数,并且仍然可以使用group
(这就是为什么最好分开使用不同的函数)。在这还需要对
process
稍作修改。在相关问题 更多 >
编程相关推荐