Benjamin Kaplan wrote:


On Thu, Mar 26, 2009 at 5:14 PM, <paul.scipi...@aps.com <mailto:paul.scipi...@aps.com>> wrote:

    Hi D'Arcy J.M. Cain,

    Thank you.  I tried this and my list of 76,979 integers got reduced
    to a dictionary of 76,963 items, each item listing the integer value
    from the list, a comma, and a 1.  I think what this is doing is
    finding all integers from my list that are unique (only one instance
    of it in the list), instead of creating a dictionary with integers
    that are not unique, with a count of how many times they occur.  My
    dictionary should contain only 11 items listing 11 integer values
    and the number of times they appear in my original list.



Not all of the values are 1. The 11 duplicates will be higher. Just iterate through the dict to find all keys with values > 1.

 >>> icounts
{1: 2, 2: 1, 3: 1, 4: 1, 5: 1, 6: 1, 7: 5, 8: 3, 9: 1, 10: 1, 11: 1}

Python 2.x :
 >>> dups = {}
 >>> for key, value in icounts.iteritems() :
...    if value > 1 :
...       dups[key] = value
...
 >>> dups
{8: 3, 1: 2, 7: 5}


Python 3.0 :
 >>> dups = {key:value for key, value in icounts.items() if value > 1}
 >>> dups
{8: 3, 1: 2, 7: 5}

The equivalent in Python 2.x would be:

>>> dups = dict((key, value) for key, value in icounts.iteritems() if value > 1)
>>> dups
{8: 3, 1: 2, 7: 5}
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to