Python Can"__名称;作为口述的关键?

Python Can"__名称;作为口述的关键?,python,python-3.x,dictionary,hidden-markov-models,Python,Python 3.x,Dictionary,Hidden Markov Models,编辑: 附带的代码有一些bug,这些bug与标题中的问题无关。答案很简单,所以我删除了不相关的代码,这样标题中的问题和答案对那些搜索这些东西的人来说就更清楚了。感谢所有花时间阅读代码并给我一些反馈的人 原始问题,节选: 当我的Python脚本试图访问dict条目'“\uuuu main\uuuu”:“”时,我似乎遇到了问题,该条目由'\uuu name\uuuu==”键控。我的问题是与使用这些字符串作为变量有关,还是我的脚本更有可能在其他地方失败?(SPOILER:我的算法是错误的。)无论是“\

编辑:
附带的代码有一些bug,这些bug与标题中的问题无关。答案很简单,所以我删除了不相关的代码,这样标题中的问题和答案对那些搜索这些东西的人来说就更清楚了。感谢所有花时间阅读代码并给我一些反馈的人

原始问题,节选:
当我的Python脚本试图访问dict条目
'“\uuuu main\uuuu”:“
”时,我似乎遇到了问题,该条目由
'\uuu name\uuuu==”
键控。我的问题是与使用这些字符串作为变量有关,还是我的脚本更有可能在其他地方失败?(
SPOILER:
我的算法是错误的。)

无论是
“\uuuu name\uuuuuuu”
还是
”==”
都可以作为字典的键:

>>> d = {'__name__':1, '==':2}
>>> d['__name__']
1
>>> d['==']
2

回答您的实际问题:是的,它是一个可哈希(字符串)对象,因此它可以是一个键。您的“错误”是一个
键盘中断
-到底是什么问题?问题是每当出现2-gram“\u name\u==”时,它就会挂起(似乎是无限期的)。我已经复制了很多次了。我将每个可能出现的单词的默认概率设置为1.0,因此我认为算法应该很快找到一个可接受的单词。我只是想到我没有考虑冗余引号,正如我们在
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
现在就开始调查。如果不具体分析为什么某个字符串似乎总是失败,我可以告诉您,您的随机选择算法有一个固有的缺陷,可能导致无限循环。当做出无效选择时,您应该重写它,以使无效选择不在可能的选择中。我的观点是,在这两种情况下,您都调用
random.sample
ngram\u to\u kwords
gibbs\u sample\u data
),存在选择以前失败的项目的可能性,允许它不断循环而不成功。您需要以某种方式从选择池中删除失败的尝试,直到循环完成。谢谢您的回答!我承认你或多或少回答了这个问题。这是可行的,就像“name==”(有问题的字符串)一样。不幸的是,你让我明白我应该重新措辞这个问题。如果它看起来真的需要一个单独的帖子,我会回来选择这个答案作为最佳答案。