2

我有一本字典,里面装满了名为“可能”的列表,键为“a”-“z”。每个键都有一个列表的值,其中包含“a”到“z”。基本上,26 个字母。

我将一个字符串清理为小写字母并去掉标点符号并将每个单词保存到一个名为“cleanedWords”的列表中。

我想浏览列表,如果列表中的单词只有两个字母,请从键中删除两个字母单词中两个字母的值“c”。然后继续下一个 2 个字母的单词并重复。

这是有错误的片段:

for y in cleanedWords:
    if len(y) == 2:
        for i in y:
            possible[i].remove('c')

这是错误:

Traceback (most recent call last):
  File "F:\python\crypto\cipher.py", line 83, in <module>
    possible[i].remove('c')
ValueError: list.remove(x): x not in list

显然我做错了什么。有人可以指出我正确的方向吗?我可以不叫“y”吗?

泰勒

4

2 回答 2

1

好的,我不熟悉您的(如果您想要详细答案,请分享)数据结构,但它看起来我需要将您的代码替换为:

for word in (x for x in cleanedWords if len(x) == 2):
    for ch in word:
        if 'c' in possible[i]:
            possible[ch].remove('c')
于 2012-11-06T03:37:35.587 回答
0
for y in cleanedWords:
    if len(y) == 2:
        print y
        for i in y:
            try:
                possible[i].remove('c')
            except ValueError:
                pass
于 2012-11-06T06:28:43.410 回答