如何使用python删除字典中的非字母数字字符
我有一本字典,像: {,'5':24'/':25','a':26',} 如何删除标点符号和数字以便只保留字典中的字母数字字符如何使用python删除字典中的非字母数字字符,python,regex,dictionary,Python,Regex,Dictionary,我有一本字典,像: {,'5':24'/':25','a':26',} 如何删除标点符号和数字以便只保留字典中的字母数字字符 我可以用传统的方法通过索引键来删除这些项,但是有没有一种有效的方法通过使用正则表达式来删除它们?使用dictionaryd: d = {key: value for key, value in d.items() if key.isalpha()} 使用字典d: d = {key: value for key, value in d.items() if key.isa
我可以用传统的方法通过索引键来删除这些项,但是有没有一种有效的方法通过使用正则表达式来删除它们?使用dictionary
d
:
d = {key: value for key, value in d.items() if key.isalpha()}
使用字典
d
:
d = {key: value for key, value in d.items() if key.isalpha()}
如果您想就地编辑dict而不是创建新dict:
for key in list(d):
if not key.isalpha():
del d[key]
更新
我为python3添加了
列表
,因此它将创建dict键的副本,如果您不这样做,您将在迭代过程中更改运行时错误:字典大小
,如果您想在位编辑dict而不创建新的dict:
for key in list(d):
if not key.isalpha():
del d[key]
更新
我为python3添加了
列表
,因此它将创建dict密钥的副本,如果您不这样做,您将有运行时错误:迭代期间字典更改大小
如果您没有使用该值,您最好对d中的键执行:
我有此错误:运行时错误:迭代期间字典更改大小iteration@PatrickHaugh正确的,进行了一个小的更新,因此如果您没有使用您最好为d中的键执行的值,代码将在python3上工作:我有一个错误:RuntimeError:在iteration@PatrickHaugh对,做了一个小的更新,这样代码就可以在python3Also上运行了,这些数字仍然包含在字典中。你可以使用regexp而不是isalnum,但这没有什么意义。对于像这样的短字符串的检查,开销是不值得的,它最终会不必要地使问题复杂化。@YanLong“字母数字”中的“数字”表示数字。使用isalpha
仅保留字母。因此,数字仍包含在字典中。您可以使用regexp而不是isalnum
,但这没有意义。对于像这样的短字符串的检查,开销是不值得的,它最终会不必要地使问题复杂化。@YanLong“字母数字”中的“数字”表示数字。使用isalpha
仅保留字母