在字典中获取不包含“的关键字”;x";变量Python

在字典中获取不包含“的关键字”;x";变量Python,python,regex,dictionary,Python,Regex,Dictionary,我有下面的字典 字典={'\x85':1',\x84':1,'C':3828} 我想要的只是键和不包含数字的键的对应值,这是我写的,但它不起作用。我发现一个关键错误。顺便说一句,我在上面 new_dictionary = {} for key in diciontary: if r"\d" not in key: new_dictionary[key] += dictionary[key] 这不起作用,但是,我得到一个关键错误。我想这意味着

我有下面的字典

字典={'\x85':1',\x84':1,'C':3828}

我想要的只是键和不包含数字的键的对应值,这是我写的,但它不起作用。我发现一个关键错误。顺便说一句,我在上面

new_dictionary = {}   
for key in diciontary:  
      if r"\d" not in key:  
              new_dictionary[key] += dictionary[key]
这不起作用,但是,我得到一个关键错误。我想这意味着钥匙不存在,但这正是我想要的,除了带数字的钥匙

在这种情况下,我的预期输出是
字典={C':3828}

虽然我认为我可能会遇到麻烦,因为键是一个字符串,即使其中有一个数字,我认为它读取的是一个字符串,所以正则表达式在这里不起作用


这实际上是一个大字典的一部分,我在这里粘贴的代码适用于其他有数字的实例,但是有一些是通过的?这是因为acutal字符被保存为不同的类型吗?无论如何,我都不知道如何删除它们。

您需要在搜索或匹配函数中使用正则表达式模式。因此,将if条件更改为

if not re.search(r"\d", key): 


如果在键上找到一个字母,这将打印字典项。

您似乎不知道像
'\x85'
这样的字符串实际上是什么。这些不一定是包含数字的字符串。是的

new_dictionary = {k:v for k,v in dictionary.iteritems() if k.isalpha()}
除非您更清楚地确定它们的问题所在,以及希望在输出中保留哪些字符,否则没有人可以告诉您如何删除它们

例如,
'\x43'
是python中表示字符串“C”的另一种方式,因此以下两个dict实际上是相等的

>>> dict1 = {'\x85': 1, '\x84': 1, 'C': 3828}
>>> dict2 = {'\x85': 1, '\x84': 1, '\x43': 3828}
>>> dict1 == dict2
True

您的预期输出是什么?
“\x85”
不包含数字。你很可能是走错了路。为什么您的dict中首先有这些键,这些键的什么属性使您想要它们消失?我只想要数字,而不是说我想要这个键值中的x。如果它包含字母以外的任何内容,我希望排除整个键。我试着用“\\”来引用它们,但效果不太好。提示:你对
字典={'\x43':3828}
的预期输出是什么?没有人喜欢聪明的alec:-)如果dict中有类似
'或
'
的键,这可能不会满足OP的要求。它不会打印出键错误消息,但它仍然打印包含数字的值,我认为这是因为整个键是一个字符串。我认为在python中可能会发生这种情况,对吗?请注意,
'\x85'
打印出一个unicode字符。因此,上面的正则表达式模式还将打印
'\x85'
key.ya的值,这不是我想要的。我对原文进行了编辑,看一看
\xhh    Character with hex value hh
>>> dict1 = {'\x85': 1, '\x84': 1, 'C': 3828}
>>> dict2 = {'\x85': 1, '\x84': 1, '\x43': 3828}
>>> dict1 == dict2
True