I want to round a list of numbers to basically remove all the decimal places or even just convert them to integers.
So this is what I've tried and I just can't get this to work. -
myList = [10.5,25.1,350.6,4,5,6] #declare my list
-
for i in range(len(myList)):
-
myList[i] == round(i,0) #tries to round all numbers.
-
print myList
-
-
#other Attempt
-
for i in range(len(myList)):
-
myList[i] == int(i) #tries to make i into an integer
-
print myList
-
-
#other attempt
-
-
for i in myList:
-
int(i)
-
-
I'm just not getting this.
Thanks
9 24563 zmbd 5,501
Recognized Expert Moderator Expert
So what error message are you getting?
So what output, if any, are you getting?
Hint: round(i,0) returns a double so if you want to round and then return the integer part only...
-z
Okay, here's the code again: - myList = [10.5,25.1,350.6,4,5,6]
-
-
for i in myList:
-
int(i)
-
-
print myList
-
-
for i in myList:
-
round(i)
-
-
print myList
-
-
for i in range(len(myList)):
-
myList[i] == round(i,0)
-
-
print myList
-
Here's my output
[10.5, 25.1, 350.6, 4, 5, 6]
[10.5, 25.1, 350.6, 4, 5, 6]
[10.5, 25.1, 350.6, 4, 5, 6]
My desirec output is
[11, 25, 351, 4, 5, 6]
No errors. Just doesn't do anything.
When you say it returns a double. clueless on what that implies.
zmbd 5,501
Recognized Expert Moderator Expert
Returns a data type of "double" vs integer, long, etc..
Data types are covered in most good books and you can google on them as related to python/ruby/vba/.net etc...
My hint has the solution.
-z
I will call you Gollum from now own, master of riddles. ;)
Okay, I understand double.
So if round is returning a double, then I need to convert that into an integer.
I've tried that (at least I think) with this code. -
for i in myList:
-
int((round(i)))
-
-
print myList
But on a deeper level, is my logic right? to redefine the numbers (long) in a list by just using the for loop?
bvdet 2,851
Recognized Expert Moderator Specialist
In your first example, you are using the comparison operator "==" when you should be using the assignment operator "=". Also, you should combine int() and round() to achieve the desired output. - >>> int(round(12.5, 0))
-
13
-
>>> x == int(round(12.5, 0))
-
False
-
>>> x = int(round(12.5, 0))
-
>>> x
-
13
-
>>>
A list comprehension is the easiest way. - >>> x = [1,2,3,11.5]
-
>>> newlist = [int(round(n, 0)) for n in x]
-
>>> newlist
-
[1, 2, 3, 12]
-
>>>
zmbd 5,501
Recognized Expert Moderator Expert
bvdet
sigh... you let 'em off the hook. :(
-z
bvdet 2,851
Recognized Expert Moderator Specialist
Sorry about that zmbd. If he was going to "get it" he already would have.
Well, first of all, thanks both of you. I appreciate your time.
But after looking at the way I was approaching it, I want to learn a bit more here.
I got the code to work so now my vector multiplication that I was going for is complete.
But this was my thought process.
If I put
in the command line of python, it returns 13
So that was fine with me. I get that.
But this was my thinking.
If I have a list, I can do something real basic like this -
myList =[4,3,5,6,1]
-
-
for range in (len(myList)):
-
i=*3
-
-
That returns a new list of
12,9,15,6,1
So my thought process was, why can't I just use the round or integer function within the same statement such as -
for range in (len(myList)):
-
i=int(i)
-
But when I do this, it returns a number like 2.000000001 or something like that.
Anyhow, that's what I don't get so as part of my learning experience, can you help me understand what is happening? I see that round returns a double like you said, but how does that double go back to being an int?
I mean, why doesn´t the following code work? -
for range in (len(myList)):
-
i=int(round(i,0))
-
-
thanks again
Oh, and bvdet,
I didn´t know you could use list comprehension like that.
I redid all my code and cut it down by about 25% with that new found knowledge.
bvdet 2,851
Recognized Expert Moderator Specialist
In your for loop, range is used as a temporary identifier for the expression len(myList), which returns an integer. You cannot iterate on an integer. Also, you will mask the built-in function range(). I think you meant to do this: - >>> myList = [10.2, 12.9]
-
>>> for i in range(len(myList)):
-
... myList[i]=int(round(myList[i],0))
-
...
-
>>> myList
-
[10, 13]
-
>>>
The temporary identifier i can be used as the index for getting each list element and reassigning the element at that index. Identifier i will retain the last value assigned to it. Built-in function range() returns a list. - >>> range(len(myList))
-
[0, 1]
-
>>> i
-
1
-
>>>
HTH
Sign in to post your reply or Sign up for a free account.
Similar topics |
by: Leon |
last post by:
I have six textbox controls on my webform that allows the user to enter any
numbers from 1 to 25 in any order. However, I would like to sort those
numbers from least to greatest before sending them...
|
by: Lance Hoffmeyer |
last post by:
Is there an easy way to round numbers in an array?
I have
Test =
and want to round so the values are
print Test
|
by: Richard Cranium |
last post by:
Using the number 1.015
*****************************
the following script returns 1.02, which is correct
var T;
var S=new String(Math.round(parseFloat(1.015).toFixed(2)*100));
while...
|
by: Zeng |
last post by:
Math.Round has good behavior as following:
Math.Round(3.45, 1); //Returns 3.4. The last '5' is thrown away because 4 is
even
Math.Round(3.75, 1); //Returns 3.8. The last '5' is used because '7'...
|
by: Henrootje |
last post by:
I am looking for a way to round down the results of a calculation in a
query
f.e.:
in a query this calculation is performed:
a/b = c
5/3 = 1,666666667
| |
by: Samuel |
last post by:
Hi
I am looking for a method that rounds numbers to a specified number of
decimal places for example if I pass 2.455 it will return 2.46
Thank you,
Samuel
|
by: muddasirmunir |
last post by:
can any body tell me how to round numbers in in exactly two decimal places
i had use a function round(text1.text,2)
but whenever there is zere(0) at the end it does not show it
for eg for round...
|
by: Aussie Rules |
last post by:
Hi,
Whats the easiest way to round numbers up.
For example, a calculation that results in a value of 1.3 will round to 1,
and a calculation that results in 1.8 will round to 2.
My issue...
|
by: Iruka07 |
last post by:
NOTE: I am using Excel VBA.
Please help me program the following problem:
A positive integer n is said to be a ROUND NUMBER if the binary representation of n has as many or more zeros as ones....
|
by: Hystou |
last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
|
by: Oralloy |
last post by:
Hello folks,
I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>".
The problem is that using the GNU compilers,...
| |
by: Hystou |
last post by:
Overview:
Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
|
by: tracyyun |
last post by:
Dear forum friends,
With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...
|
by: agi2029 |
last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...
|
by: isladogs |
last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM).
In this session, we are pleased to welcome a new...
|
by: conductexam |
last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and...
|
by: adsilva |
last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
| |
by: bsmnconsultancy |
last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence...
| |