Convert a List of Floats to a List of Integers in Python

avatar
Borislav Hadzhiev

Last updated: Apr 9, 2024
5 min

banner

# Table of Contents

  1. Convert a List of Floats to a List of Integers in Python
  2. Convert a List of Integers to a List of Floats in Python

# Convert a List of Floats to a List of Integers in Python

To convert a list of floats to a list of integers:

  1. Use a list comprehension to iterate over the list.
  2. Use the int() class to convert the current float to an integer.
  3. The new list will only contain integer values.
main.py
list_of_floats = [1.23, 3.45, 5.67] result = [int(item) for item in list_of_floats] print(result) # ๐Ÿ‘‰๏ธ [1, 3, 5]

convert list of floats to list of integers

The code for this article is available on GitHub

We used a list comprehension to iterate over the list of floats.

List comprehensions are used to perform some operation for every element, or select a subset of elements that meet a condition.

On each iteration, we pass the current float value to the int() class to convert it to an integer.

The new list only contains integer values.

# Convert a List of Floats to a List of Integers using round()

You can also use the round() function to round each float to the nearest integer.

main.py
list_of_floats = [1.23, 3.45, 5.67] result = [round(item) for item in list_of_floats] print(result) # ๐Ÿ‘‰๏ธ [1, 3, 6]

convert list of floats to list of integers using round

The code for this article is available on GitHub
Instead of converting to an integer by dropping the decimal, this example converts the floating-point numbers in the list by rounding them to the nearest integers.

The round() function takes the following 2 parameters:

NameDescription
numberthe number to round to ndigits precision after the decimal
ndigitsthe number of digits after the decimal, the number should have after the operation (optional)

The round function returns the number rounded to ndigits precision after the decimal point.

If ndigits is omitted, the function returns the nearest integer.

main.py
print(round(3.45)) # ๐Ÿ‘‰๏ธ 3 print(round(3.55)) # ๐Ÿ‘‰๏ธ 4

# Convert a List of Floats to a List of Integers using math.ceil

If you need to round up, use the math.ceil() method.

main.py
import math list_of_floats = [1.23, 3.45, 5.67] result = [math.ceil(item) for item in list_of_floats] print(result) # ๐Ÿ‘‰๏ธ [2, 4, 6]

convert list of floats to list of integers using math ceil

The code for this article is available on GitHub

The math.ceil() method returns the smallest integer greater than or equal to the provided number.

main.py
print(math.ceil(3.01)) # ๐Ÿ‘‰๏ธ 4 print(math.ceil(3.99)) # ๐Ÿ‘‰๏ธ 4

# Convert a List of Floats to a List of Integers using math.floor

If you need to round down, use the math.floor() method.

main.py
import math list_of_floats = [1.23, 3.45, 5.67] result_4 = [math.floor(item) for item in list_of_floats] print(result_4) # ๐Ÿ‘‰๏ธ [1, 3, 5]

The math.floor method returns the largest integer less than or equal to the provided number.

main.py
print(math.floor(4.999)) # ๐Ÿ‘‰๏ธ 4 print(math.floor(4.001)) # ๐Ÿ‘‰๏ธ 4

Alternatively, you can use the map() function.

# Convert a List of Floats to a List of Integers using map()

This is a three-step process:

  1. Pass the round() function and the list to the map() function.
  2. The map() function will pass each float to the round() function.
  3. Use the list() class to convert the map object to a list.
main.py
list_of_floats = [2.4, 3.5, 6.7, 8.1] new_list = list(map(round, list_of_floats)) # ๐Ÿ‘‡๏ธ [2, 4, 7, 8] print(new_list)
The code for this article is available on GitHub

The map() function takes a function and an iterable as arguments and calls the function with each item of the iterable.

The map() function calls the round() function will each floating-point number in the list and rounds each value.

The last step is to use the list() class to convert the map object to a list.

The list() class takes an iterable and returns a list object.

Which approach you pick is a matter of personal preference. I'd go with the list comprehension as I find it more direct and easier to read.

# Convert a List of Integers to a List of Floats in Python

To convert a list of integers to a list of floats:

  1. Use a list comprehension to iterate over the list.
  2. Use the float() class to convert each integer to a float.
  3. The new list will only contain floating-point numbers.
main.py
list_of_integers = [3, 5, 7, 9] new_list = [float(item) for item in list_of_integers] # ๐Ÿ‘‡๏ธ [3.0, 5.0, 7.0, 9.0] print(new_list)

We used a list comprehension to iterate over the list of integers.

List comprehensions are used to perform some operation for every element, or select a subset of elements that meet a condition.

On each iteration, we pass the integer to the float() class to convert it to a floating-point number.

The new list will only contain float values.

Alternatively, you can use the map() function.

# Convert a List of Integers to a List of Floats using map()

This is a three-step process:

  1. Pass the float() class and the list to the map() function.
  2. The map() function will call the float() class with each item in the list.
  3. Use the list() class to convert the map object to a list.
main.py
list_of_integers = [3, 5, 7, 9] new_list = list(map(float, list_of_integers)) # ๐Ÿ‘‡๏ธ [3.0, 5.0, 7.0, 9.0] print(new_list)
The code for this article is available on GitHub

The map() function takes a function and an iterable as arguments and calls the function with each item of the iterable.

The float() class gets passed each integer in the list and converts each value to a floating-point number.

Lastly, we used the list() class to convert the map object to a list.

The list() class takes an iterable and returns a list object.

# Convert a List of Integers to a List of Floats using a for loop

You can also use a for loop to convert a list of integers to a list of floats.

main.py
list_of_integers = [3, 5, 7, 9] new_list = [] for item in list_of_integers: new_list.append(float(item)) print(new_list) # ๐Ÿ‘‰๏ธ [3.0, 5.0, 7.0, 9.0]

On each iteration of the for loop, we convert the current item to a floating-point number and append the result to a new list.

# Convert a List of Integers to a List of Floats using NumPy

This is a two-step process:

  1. Pass the list and the float data type to the numpy.array() method.
  2. Optionally convert the NumPy array to a list.
main.py
import numpy as np list_of_integers = [3, 5, 7, 9] new_list = list( np.array(list_of_integers, dtype=np.float32) ) # ๐Ÿ‘‡๏ธ [3.0, 5.0, 7.0, 9.0] print(new_list)
The code for this article is available on GitHub

You can install NumPy by running the following command.

shell
pip install numpy # ๐Ÿ‘‡๏ธ or with pip3 pip3 install numpy

The numpy.array method creates an array from the provided object.

We set the dtype argument to np.float32 to specify the desired data type for the elements in the array.

The last (optional) step is to use the list() class to convert the NumPy array to a list object.

The list() class takes an iterable and returns a list object.

# Additional Resources

You can learn more about the related topics by checking out the following tutorials:

I wrote a book in which I share everything I know about how to become a better, more efficient programmer.
book cover
You can use the search field on my Home Page to filter through all of my articles.

Copyright ยฉ 2024 Borislav Hadzhiev