【问题标题】:Python - change sought after dictionary key when not foundPython - 找不到时更改寻求的字典键
【发布时间】:2020-04-27 00:27:48
【问题描述】:

举个例子:

dict = {'1': 'A', '2': 'B', '3': 'C', '44': 'D', '555': 'E'}

code = '12344555'
i = 0

while i < len(code):
    try:
        print(dict[code[i]])
        i += 1
    except KeyError:
        print(dict[code[i] + code[i]])
        i += 2

我想遍历代码,将其与 dict 进行比较并返回适当的值,如果未找到键,则在向寻求的值添加额外元素时应该查看是否可以找到键。

我的代码现在适用于 ABCD 但不适用于 E,我可以添加另一个 Try-except 但这似乎很愚蠢。有没有更好的办法?

还有一个问题:有没有办法在 while 循环构造中分配一个变量(在这种情况下是 i)而不是之前,例如:while i(=0) &lt; len(code)

【问题讨论】:

  • 密钥的长度是否有限制?还是应该一直添加字符直到字符串结束?
  • 只要有要添加的字符就应该添加字符。但西蒙克兰提供了一个很好的答案。谢谢大家,很棒的社区。​​span>

标签: python python-3.x dictionary iteration


【解决方案1】:

将您正在查找的字符串存储在一个变量中,然后将部分代码附加到它,直到匹配为止。

dict = {'1': 'A', '2': 'B', '3': 'C', '44': 'D', '555': 'E'}

code = '12344555'
i = 0
s = ''

while i < len(code):
    s+=code[i]
    if s in dict:
        print(dict[s])
        s = ''
    i+=1

我还要补充一点,使用 try/except 来控制流程比 if/else 慢,通常被认为是不好的做法

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-07-12
    • 2017-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多