Home > front end >  format a string to a list in python
format a string to a list in python

Time:06-17

I have a string formatted as:

s = "[2153.   3330.75]"

I'd like to convert to a list with ints.

Expected output: l = [2153, 3330]

type(l) is list

CodePudding user response:

The following code does what you are looking for.

l = [int(float(x)) for x in s.strip('[]').split()]

The float conversion is required because strings containing "." cannot be converted directly to integers.

CodePudding user response:

The string looks like a numpy array. First, we convert the string to a float numpy array using numpy fromstring method. Then convert the float array to int array using astype method. Finally, convert the numpy array to a list using tolist method:

import numpy as np

s = "[2153.   3330.75]"
values = np.fromstring(s[1:-1], dtype=float, sep=' ').astype(int).tolist()
print(values)

Output:

[2153, 3330]

References:

  • Related