【问题标题】:How to remove non alphanumeric characters in a dictionary using python如何使用python删除字典中的非字母数字字符
【发布时间】:2017-03-14 18:09:39
【问题描述】:

我有一本像这样的字典:

{...., '5':24, '/':25', 'a':26', ....}

如何删除标点符号和数字以便只保留字典中的字母数字字符?

我可以通过索引键来使用传统的方法来删除这些项目,但是有没有使用正则表达式来删除它们的有效方法?

【问题讨论】:

    标签: python regex dictionary


    【解决方案1】:

    带字典d:

    d = {key: value for key, value in d.items() if key.isalpha()}
    

    【讨论】:

    • 另外,这些数字还在字典中
    • 您可以使用正则表达式来代替isalnum,但这确实没有意义。为了检查这样的短字符串,开销是不值得的,它最终会不必要地使问题复杂化。
    • @YanLong “字母数字”中的“数字”表示数字。使用isalpha 只保留字母
    【解决方案2】:

    如果你想就地编辑你的字典而不是创建一个新的:

    for key in list(d):
        if not key.isalpha():
            del d[key]
    

    更新

    我为 python3 添加了list,因此它将创建字典键的副本,如果您不这样做,您将拥有RuntimeError: dictionary changed size during iteration

    【讨论】:

    • 如果您不使用该值,您不妨使用for key in d:
    • 我遇到了这个错误:RuntimeError: dictionary changed size during iteration
    • @PatrickHaugh 对,做了一个小更新,所以代码可以在 python3 上运行
    猜你喜欢
    • 2013-11-29
    • 1970-01-01
    • 2019-11-26
    • 1970-01-01
    • 1970-01-01
    • 2014-02-20
    • 2018-02-24
    • 2012-07-04
    • 2014-04-26
    相关资源
    最近更新 更多