Python | Convert Joint Float string to Numbers
Last Updated :
12 Apr, 2023
Sometimes, while working with Legacy languages, we can have certain problems. One such can be working with FORTRAN which can give text output (without spaces, which are required) '12.4567.23' . In this, there are actually two floating point separate numbers but concatenated. We can have problem in which we need to separate them. Lets discuss certain ways in which this task can be performed.
Method #1 : Using loop + float()
This is brute force method in which this task can be performed. In this, we iterate for each element and break in chunks of 4 and skip to every 5th element and perform split and store in list. The conversation from string to float is done using float().
Python3
# Python3 code to demonstrate working of
# Convert Joint Float string to Numbers
# Using loop + float()
# initializing string
test_str = "45.6778.4524.45"
# printing original string
print("The original string is : " + test_str)
# Convert Joint Float string to Numbers
# Using loop + float()
res = []
for idx in range(0, len(test_str), 5):
res.append(float(test_str[idx : idx + 5]))
# printing result
print("The float list is : " + str(res))
Output : The original string is : 45.6778.4524.45
The float list is : [45.67, 78.45, 24.45]
Method #2 : Using list comprehension + float()
This is shorthand way to solve this problem. This is similar to above function. The difference is that we perform all loop task in single line using list comprehension.
Python3
# Python3 code to demonstrate working of
# Convert Joint Float string to Numbers
# Using list comprehension + float()
# initializing string
test_str = "45.6778.4524.45"
# printing original string
print("The original string is : " + test_str)
# Convert Joint Float string to Numbers
# Using list comprehension + float()
res = [float(test_str[idx : idx + 5]) for idx in range(0, len(test_str), 5)]
# printing result
print("The float list is : " + str(res))
Output : The original string is : 45.6778.4524.45
The float list is : [45.67, 78.45, 24.45]
Here's another approach using the re module in python:
Python3
# Approach 3: Using regex
import re
test_str = "45.6778.4524.45"
# Split the string using a regex pattern that matches 5 characters that starts with a digit
# and ends with a dot
res = [float(x) for x in re.findall(r'\d+\.\d{2}', test_str)]
print("The original string is :", test_str)
print("The float list is :", res)
OutputThe original string is : 45.6778.4524.45
The float list is : [45.67, 78.45, 24.45]
This approach uses the re module to split the string using a regex pattern. The pattern matches 5 characters that start with a digit and end with a dot, which corresponds to a float number with two decimal places. The re.findall function returns a list of all the matches, which are then converted to float numbers.
Time Complexity: O(n), where n is the length of the input string test_str.
Auxiliary Space: O(m), where m is the number of matches found in test_str.
Approach 4: Using the re module and a loop
Step-by-step approach:
- Define the input string.
- Create an empty list to store the float values.
- Use a regular expression to find the first float value in the input string.
- Convert the found float value to a float and append it to the list of float values.
- Remove the found float value from the input string.
- Repeat steps 3-5 until no more float values can be found in the input string.
- Print the original string and the list of float values.
Below is the implementation of the above approach:
Python3
import re
test_str = "45.6778.4524.45"
float_list = []
while True:
match = re.search(r'\d+\.\d{2}', test_str)
if match is None:
break
float_value = float(match.group())
float_list.append(float_value)
test_str = test_str[match.end():]
print("The original string is:", test_str)
print("The float list is:", float_list)
OutputThe original string is:
The float list is: [45.67, 78.45, 24.45]
Time complexity: O(n^2), where n is the length of the input string.
Auxiliary space: O(n), to store the list of float values.
Method 5 : Use the numpy module
Step-by-step approach:
Import the numpy module.
Initialize the input string test_str.
Print the original input string.
Use the numpy.fromstring() function to convert the input string to a numpy array of floats.
Print the resulting numpy array converted to a list of floats
Python3
# importing numpy module
import numpy as np
# initializing string
test_str = "45.6778.4524.45"
# printing original string
print("The original string is : " + test_str)
# Convert Joint Float string to Numbers
# Using string slicing and numpy.fromiter()
chunk_size = 5
chunks = (test_str[i:i+chunk_size] for i in range(0, len(test_str), chunk_size))
res = np.fromiter(chunks, dtype=np.float32)
# printing result
print("The float list is : " + str(list(res)))
OUTPUT:
The original string is : 45.6778.4524.45
The float list is : [45.67, 78.45, 24.45]
Time complexity: O(n), where n is the length of the input string.
Auxiliary space: O(n), where n is the length of the input string, as the numpy array created from the input string has the same length as the input string.
Similar Reads
Convert String Float to Float List in Python
We are given a string float we need to convert that to float of list. For example, s = '1.23 4.56 7.89' we are given a list a we need to convert this to float list so that resultant output should be [1.23, 4.56, 7.89].Using split() and map()By using split() on a string containing float numbers, we c
2 min read
Python | Convert Stream of numbers to list
Sometimes, we can be stuck with a problem in which we are given a stream of space separated numbers with a goal to convert them into a list of numbers. This type of problem can occur in common day-day programming or competitive programming while taking inputs. Let's discuss certain ways in which thi
5 min read
Python - List of float to string conversion
When working with lists of floats in Python, we may often need to convert the elements of the list from float to string format. For example, if we have a list of floating-point numbers like [1.23, 4.56, 7.89], converting them to strings allows us to perform string-specific operations or output them
3 min read
Convert Float String List to Float Values-Python
The task of converting a list of float strings to float values in Python involves changing the elements of the list, which are originally represented as strings, into their corresponding float data type. For example, given a list a = ['87.6', '454.6', '9.34', '23', '12.3'], the goal is to convert ea
3 min read
Python - Extract numbers from list of strings
We are given a list of string we need to extract numbers from the list of string. For example we are given a list of strings s = ['apple 123', 'banana 456', 'cherry 789'] we need to extract numbers from the string in list so that output becomes [123, 456, 789].Using Regular ExpressionsThis method us
2 min read
Python | Convert numeric String to integers in mixed List
Sometimes, while working with data, we can have a problem in which we receive mixed data and need to convert the integer elements in form of strings to integers. This kind of operation might be required in data preprocessing step. Let's discuss certain ways in which this task can be performed. Metho
11 min read
Python Check If String is Number
In Python, there are different situations where we need to determine whether a given string is valid or not. Given a string, the task is to develop a Python program to check whether the string represents a valid number.Example: Using isdigit() MethodPython# Python code to check if string is numeric
6 min read
Python - range() for Float Numbers
The range() function in Python is often used to create a sequence of numbers. However by default, it works only with integers. What if we want to use range() with float numbers? Letâs explore how we ca work with range() with float numbers. Using numpy.arange()For a cleaner solution, we can use numpy
2 min read
Python | Convert list of numerical string to list of Integers
Many times, the data we handle might not be in the desired form for any application and has to go through the stage of preprocessing. One such kind of form can be a number in the form of a string that too is a list in the list and we need to segregate it into digit-separated integers. Let's discuss
5 min read
Python Program to Convert a List to String
In Python, converting a list to a string is a common operation. In this article, we will explore the several methods to convert a list into a string. The most common method to convert a list of strings into a single string is by using join() method. Let's take an example about how to do it.Using the
3 min read