Having now done a quick check, mydict.pop() is no better for this case.

Here's a simplistic sample that does work:

d = {
100:3,
200:4,
111:5,
222:5,
333:5,
500:6,
}

print "original: ", d

new = {key:value for (key,value) in d.iteritems() if value != 5}

print "new: ", new
===========================

"""
In this case, you ned to specify by hand the entry you
want to delete. In case you want to do it without looking
at the stuff, here is one way paraphrasing
the stackoverflow post
https://stackoverflow.com/questions/20672238/find-dictionary-keys-with-duplicate-values
"""

#
d = {
100:3,
200:4,
111:5,
222:5,
333:5,
500:6,
50:7,
60:7,
}

print ("original: ", d)

rev_multidict = {}
for key, value in d.items():
     rev_multidict.setdefault(value, set()).add(key)
print(rev_multidict)

v = [values for key, values in rev_multidict.items() if len(values) > 1]
print('\t Set of keys with same value ', v)

#[print(i) for element in v for i in list(element)]
[d.pop(i) for element in v for i in list(element)]
print('d with every repeated stuff deleted: ', d)


Sergio
Enhance your #MachineLearning and #BigData skills via #Python #SciPy
1) 
https://www.packtpub.com/big-data-and-business-intelligence/numerical-and-scientific-computing-scipy-video
 
2) 
https://www.amazon.com/Learning-Numerical-Scientific-Computing-Second/dp/1783987707/
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor

Reply via email to