# Python Code

## Recommended Posts

Hi everyone. I just have a part of a program that that is written in Python that I don't understnd whats happening. I need to built a LabView code that does just that. I have completed most of the program but this part of it I don't quite understand. I have uploaded this in TXT format so everyone can have a look. The code is not long and probably is not hard to see whats happening but for the moment I haven't got a clue what did the previous person try to do with this part of his python code.

My understanding is that he is multiplying 5 with the values [1,2,4,8,16,32,3,6,9,12,24]. Then 2 multiplyed by [1,2,4,8,16,32,3,6,9,12,24] then 3 by [1,2,4,8,16,32,3,6,9,12,24] and finnaly removing any duplicate values that come out.

If so, then what is the commented part in BOLD telling:

K1 = [i*5 for i in range(20)] # 5, 10 ... 95

K = []

M = [1,2,4,8,16,32,3,6,9,12,24]

for j in range(len(M)):

for i in range(20):

K.append(K1*M[j]*i)

Any help is appriciated.

`K1 = [i*5 for i in range(20)] # 5, 10 ... 95 K = [] M = [1,2,4,8,16,32,3,6,9,12,24] for j in range(len (M)):	 for i in range(20):		 K.append(K1[i]*M[j]*i)  print K`

I just run the above code snipset in python 2.4 and here is what I got for K

`[0, 5, 20, 45, 80, 125, 180, 245, 320, 405, 500, 605, 720, 845, 980, 1125, 1280, 1445, 1620, 1805, 0, 10, 40, 90, 160, 250, 360, 490, 640, 810, 1000, 1210, 1440, 1690, 1960, 2250, 2560, 2890, 3240, 3610, 0, 20, 80, 180, 320, 500, 720, 980, 1280, 1620, 2000, 2420, 2880, 3380, 3920, 4500, 5120, 5780, 6480, 7220, 0, 40, 160, 360, 640, 1000, 1440, 1960, 2560, 3240, 4000, 4840, 5760, 6760, 7840, 9000, 10240, 11560, 12960, 14440, 0, 80, 320, 720, 1280, 2000, 2880, 3920, 5120, 6480, 8000, 9680, 11520, 13520, 15680, 18000, 20480, 23120, 25920, 28880, 0, 160, 640, 1440, 2560, 4000, 5760, 7840, 10240, 12960, 16000, 19360, 23040, 27040, 31360, 36000, 40960, 46240, 51840, 57760, 0, 15, 60, 135, 240, 375, 540, 735, 960, 1215, 1500, 1815, 2160, 2535, 2940, 3375, 3840, 4335, 4860, 5415, 0, 30, 120, 270, 480, 750, 1080, 1470, 1920, 2430, 3000, 3630, 4320, 5070, 5880, 6750, 7680, 8670, 9720, 10830, 0, 45, 180, 405, 720, 1125, 1620, 2205, 2880, 3645, 4500, 5445, 6480, 7605, 8820, 10125, 11520, 13005, 14580, 16245, 0, 60, 240, 540, 960, 1500, 2160, 2940, 3840, 4860, 6000, 7260, 8640, 10140, 11760, 13500, 15360, 17340, 19440, 21660, 0, 120, 480, 1080, 1920, 3000, 4320, 5880, 7680, 9720, 12000, 14520, 17280, 20280, 23520, 27000, 30720, 34680, 38880, 43320]`

Hope it help.

PJM

Thats amazing, thank you both, it actualy works.

Thanks again.

Sorry guys but I need some more help.

Last night I was trying to do 2 things that I couldn't accomplish AGAIN:

1) From all the numbers that are generated (as above) there are some duplicates. i.e. the integer "0" is repeated a few times etc. And I am trying to remove them since I only need 1 copy of every digit. The problem I am facing here is that the duplicate elements are not next to each other inside the array, for example number appears on index 1 of the array and then the same number on index 30 again etc.

2) Final problem is the averaging. Out of all the numbers I have on the array (i.e. the big list of numbers generated) if I input an array with size 4000, it will go through the list of numbers and the size of the same array on the output should be 3920 on the output. So the last 80 elements of the array are discarded. So, what I am basically trying to do is resize the input array based on the array sizes that are available on the table (i.e. the big list of numbers generated). So the input array was 4000 and the same size is also available on the table, but the next size smaller that 4000 that is available on the table is 3920, so thats the size the input array should choose to take on the output.

The above I couln't accomplish all night yesterday, so again any help is appriciated.

QUOTE(zero-tolerance @ Mar 1 2007, 11:48 AM)

Sorry guys but I need some more help.

Last night I was trying to do 2 things that I couldn't accomplish AGAIN:

1) From all the numbers that are generated (as above) there are some duplicates. i.e. the integer "0" is repeated a few times etc. And I am trying to remove them since I only need 1 copy of every digit. The problem I am facing here is that the duplicate elements are not next to each other inside the array, for example number appears on index 1 of the array and then the same number on index 30 again etc.

2) Final problem is the averaging. Out of all the numbers I have on the array (i.e. the big list of numbers generated) if I input an array with size 4000, it will go through the list of numbers and the size of the same array on the output should be 3920 on the output. So the last 80 elements of the array are discarded. So, what I am basically trying to do is resize the input array based on the array sizes that are available on the table (i.e. the big list of numbers generated). So the input array was 4000 and the same size is also available on the table, but the next size smaller that 4000 that is available on the table is 3920, so thats the size the input array should choose to take on the output.

The above I couln't accomplish all night yesterday, so again any help is appriciated.

1) If the order of the elements in the array is not important, you can quite easily find and remove repeated values by first sorting the array ('Sort 1D Array' function).

2) Uhh. Lost me there

-Mikkel

QUOTE(Mikkel @ Mar 1 2007, 07:13 AM)

A Very quick and easy solution. Thank you, I never thought of doing it that way.

2) Uhh. Lost me there

haha, sorry for bad explanation. The list of numbers shown on the previous post is only a list that decide what should the size of an incomming array be. For example, If I have an array that is of size 80 or 81, as soon as it goes through the list of numbers, the size of This array will be droped down to 60. Because the next smallest number on the list other than 80 is 60, so the size of the array that was at the beginning 80or 81 is droped down to 60. This means that 20 of it elements are deleted.

I hope this is a better explanation.

Thank you

I managed to do the program, but I'm not sure if there is a better way of doing it.

I have attached the program that does exacly what I need it to do.

Thank you all again for the help.

## Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

×   Pasted as rich text.   Paste as plain text instead

Only 75 emoji are allowed.

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×