yayo
yayo

Reputation: 13

Python: How to convert a set of strings that contains commas represented as an element of a list to a sub-list?

I have a list that contains a set of strings like this:

list = ['235,ACCESS,19841136,22564960,4291500,20,527434,566876','046,ALLOWED,24737321,27863065,1086500,3,14208500,14254500']

I'm trying to make the elements of the list a sublist but without splitting the string.

I tried new_list = list(map(list, list)). This is the result taking as reference the first element of the list:

print(new_list[0]):
[['2', '3', '5', ',', 'A', 'C', 'C', 'E', 'S',',','1', '9', '8', '4', '1', '1', '3', '6', ',', '2', '2', '5', '6', '4', '9', '6', '0', ',', '4', '2', '9', '1', '5', '0', '0', ',', '2', '0', ',', '5', '2', '7', '4', '3', '4', ',', '5', '6', '6', '8', '7', '6']]

I would like this output:

print(new_list[0]):
[[235,'ACCESS',19841136,22564960,4291500,20,527434,566876]]

Thanks in advance for your help!

Upvotes: 1

Views: 102

Answers (1)

kuro
kuro

Reputation: 3226

You can try split() with delimiter , like this -

new_list = [i.split(',') for i in list]
print (new_list[0])

Output:

['235', 'ACCESS', '19841136', '22564960', '4291500', '20', '527434', '566876']

One thing is that here the numbers are also represented as string. If you want integers instead you can use isdigit() method like this -

new_list = [[int(e) if e.isdigit() else e for e in i.split(',') ]for i in list]
print(new_list[0])

Output:

[235, 'ACCESS', 19841136, 22564960, 4291500, 20, 527434, 566876]

Also, please try to avoid naming your list list

Upvotes: 2

Related Questions