Jump to content

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.

Thanks in advanced.

Link to comment

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

Link to comment

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.

Thank you in advanced.

Link to comment

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.

Thank you in advanced.

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 :wacko:

-Mikkel :)

Link to comment

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

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

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

2) Uhh. Lost me there
:wacko:

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

Link to comment

Join the conversation

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

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

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

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.