hawkesed said unto the world upon 2005-04-21 20:28:
Actually,
  I think I got it now. Here is what I did:

for num in alist:

... if adict.has_key(num): ... x = adict.get(num) ... x = x + 1 ... adict.update({num:x}) ... else: ... adict.update({num:1}) ...

adict

{128: 2, 129: 2, 132: 1, 153: 1, 30: 1, 53: 1, 57: 1, 61: 1, 66: 2, 67: 1, 69: 2, 71: 1, 72: 1, 73: 2, 74: 1, 75: 2, 76: 2, 77: 2, 78: 2, 82: 1, 84: 1, 85: 4, 87: 2, 88: 3, 89: 1, 91: 1, 92: 1, 93: 2, 94: 2, 95: 3, 96: 1, 97: 3, 98: 2, 99: 1, 100: 6, 101: 4, 102: 2, 103: 1, 104: 1, 105: 1, 106: 2, 107: 2, 108: 2, 109: 2, 111: 3, 112: 1, 114: 3, 115: 3, 116: 3, 118: 1, 119: 2, 122: 2, 123: 1, 125: 1, 126: 1} Thanks all for the help and best regards! Ed



Hi Ed,

I think there is a more Pythonic way. Here's something I used in a similar context:

def get_frequency_dict(sequence):
    '''sequence of hashables -> dictionary of frequency of members

    Given a sequence of items, each of which is hashable (i.e. can
    serve as a key in a dictionary), the function returns a
    dictionary, using the items as keys, and the number of their
    occurrences as values.

    Usage:
    >>> get_frequency_dict([1,2,2,3,3,3,4,4,4,4])
    {1: 1, 2: 2, 3: 3, 4: 4}
    >>> get_frequency_dict([[], "will fail as list aren't hashable"])
    ...
    TypeError: list objects are unhashable
    '''
    frequency_dict = {}

    for element in sequence:
        frequency_dict[element] = frequency_dict.setdefault(
                                    element, 0) + 1

    return frequency_dict

HTH,

Brian vdB


-- http://mail.python.org/mailman/listinfo/python-list

Reply via email to