[Tutor] Looking for duplicates within a list
Dave Angel
davea at ieee.org
Fri Jun 11 17:37:31 CEST 2010
Ken G. wrote:
> I have been working on this problem for several days and I am not
> making any progress. I have a group of 18 number, in ascending order,
> within a list. They ranged from 1 to 39. Some numbers are duplicated
> as much as three times or as few as none.
>
> I started with one list containing the numbers. For example, they are
> listed as like below:
>
> a = [1, 2, 3, 3, 4]
>
> I started off with using a loop:
>
> for j in range (0, 5):
> x = a[0] # for example, 1
>
> How would I compare '1' with 2, 3, 3, 4?
> Do I need another duplicated list such as b = a and compare a[0] with
> either b[0], b[1], b[2], b[3], b[4]?
>
> Or do I compare a[0] with a[1], a[2], a[3], a[4]?
>
> In any event, if a number is listed more than once, I would like to
> know how many times, such as 2 or 3 times. For example, '3' is listed
> twice within a list.
>
> TIA,
>
> Ken
>
I'm a bit surprised nobody has mentioned the obvious solution -- another
list of size 40, each of which represents the number of times a
particular number has appeared.
(Untested)
a = [1, 2, 3, 3, 4]
counts = [0] * 40
for item in a:
counts[item] += 1
Now, if you want to know how many times 3 appears, simply
print counts[3]
The only downside to this is if the range of possible values is large,
or non-numeric. In either of those cases, go back to the default
dictionary.
DaveA
More information about the Tutor
mailing list