On 09/05/2010 03:16 PM, Evert Rol wrote:
I'm having a little problem figuring out how to accomplish this simple task. 
I'd like to take a list of 6 numbers and add every permutation of those numbers 
in groups of four. For example for 1, 2, 3, 4, 5, 6 add 1 + 1 + 1 +1 then 1 + 1 
+ 1 +2 etc. until reaching 6 + 6 + 6 + 6. Using a for loop, that was the easy 
part, now I'd like to take the results and count the number of times each 
number occurs.
My problem occurs when I try to create a list from the results of the for loop, 
it puts each individual number into its own list. I've looked everywhere for 
the solution to this and can find nothing to help.
<snip />

  here is the code.

fourdsix = [1, 2, 3, 4, 5, 6]
for i in fourdsix:
    for j in fourdsix:
        for k in fourdsix:
            for l in fourdsix:
                fourdsix_result = [i, j, k, l]
                attribs = sum(fourdsix_result) - min(fourdsix_result)
                print attribs

This gives me the proper results,
I'm not sure I understand that, because now you have a subtraction here; not 
sure what that does.
It removes the lowest number in the group of 4. It's intended to replicate 
rolling four six sided dice, eliminating the lowest number and adding the 
remaining 3 dice roll results. I didn't mention it cause I felt it wasn't 
germane to the problem and it might needlessly complicate the situation.
<snip />

attrib_list = []
attrib_list.append(attribs)
print attrib_list
This one should work, unless you've put it incorrectly inside the code. But 
otherwise, it will create the list you're looking for.
So then it's a matter of stepping through the numbers inside the list and 
counting their occurrences.
I've tried this in every place in the code, outside the loop, inside at each 
step of the loop and none of them get me what I want. Andre's suggestion that I 
put the empty list before the loop helped but it's still giving me multiple 
lists.
Can you send what you currently have? Sounds like you still have the first 
statement at some incorrect place in your code.


Here is what I have.

# Program to determine frequency of each possible 4d6 die roll

attrib_list = []
fourdsix = [1, 2, 3, 4, 5, 6] #list of possible 1d6 die roll  results
for i in fourdsix:
    for j in fourdsix:
        for k in fourdsix:
            for l in fourdsix:
fourdsix_result = [i, j, k, l] # creating list from loop results
                attribs = sum(fourdsix_result) - min(fourdsix_result)
                attrib_list.append(attribs)
                print attrib_list

This gets me multiple lists running through the loop.

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

Reply via email to