【发布时间】:2014-02-26 02:19:25
【问题描述】:
我在python中有一个大字典(https://docs.google.com/document/d/1aNuwIJGRMQA2iSwdT2iliG9Q4Zu2bELNMrQVacEcSdc/edit?usp=sharing),我想删除所有具有某些特征的条目。例如,我想删除元组中第二项等于的所有条目为真,但第三个不等于块。我试图用正则表达式来做这个,但我似乎无法让它工作。
edit:我的基本想法是做这样的事情。
regex="Regular Expression"
for entry in d:
if len(re.findall(regex,str(entry)))!=0:
del d[entry]
print(d)
【问题讨论】:
-
迭代不起作用吗?
-
你看过
filter吗? -
当你说“它不工作”时,你到底是什么意思?它是抛出错误,还是只是没有产生预期的结果?在我看来,一个问题是您在删除字典时正在迭代字典。您可以通过将
for entry in d:更改为for entry in d.keys():来解决此问题,如此答案中所述:stackoverflow.com/a/5385075/391161。 -
一定要找熊猫。您可以标记这些列,您的查询将类似于
g[(not g.happy) & (g.action != 'block')]。
标签: python regex dictionary