Su Chu wrote:
Hi there,

I am new to Python. I am attempting to either define a "which" statement or
to find a method that already exists to do this sort of operation.

My problem is as follows:
I have three lists, one with unique values (list 1), one a sequence of
values that are not necessarily unique (list2), and a shorter list with the
unique values of list 2 (list 3). List 1 and List 2 are of equal lengths.


An example:
list1 = [ 1, 2, 3, 4, 5, 6 ]
list2 = [ 2, 2, 2, 5, 6, 6 ]
list3 = [2, 5, 6]

What I would like to do is find and sum the elements of list 1 given its
corresponding element in list 2 is equal to some element in list 3.

For example,
the sum of the values in list1 given list2[i]==2
would be 1 + 2 + 3 = 6.
the sum of the values in list1 given list2[i]==5
would be 4
the sum of the values in list1 given list2[i]==6
would be 5 + 6 = 11

and so on. Obtaining these values, I'd like to store them in a vector.

This seems pretty simple if a 'which' statement exists e.g. (which values in
list 1 == list3[k], and looping through k), but I can't find one. To write
one seems to require a loop.

What's wrong with a loop?
I'm at a loss, if you could help I'd really appreciate it!

If this homework has a requirement that says don't use a loop, or don't use Python 3, or don't get the answer from the internet, how about saying so?

To see if something is in a list, use:
     if x in list3

To combine two lists, use zip()

To get more help, post some code that you've actually tried, and tell us why you think it's wrong. Then we can help fix it, rather than just solving the homework directly.

DaveA
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to