I want to convert the string elements to integers within the each following list:
JavaScript
x
6
1
old = [['29,1,22,14,32,11,11,3'],
2
['2,3,1,2,1,4,1,1,3,1'],
3
['5,2,1,1,3,1,2,4,1,1,2,2,2,1,19,2,1,7'],
4
['2,2,1,5,6,1,2,3,9,2,1,1,2,6,1,1,2,3,1,1,2'],
5
['29,44,5,8,17,20,26,47,80,29,47,17,23,26,46,69,8,2,5,38,8,5,5']]
6
I have tried the following codes:
JavaScript
1
3
1
[[int(num) for num in sub] for sub in old]
2
[list(map(int, sublist)) for sublist in old]
3
These are not working in my case. I need the following outputs:
JavaScript
1
6
1
new = [[29,1,22,14,32,11,11,3],
2
[2,3,1,2,1,4,1,1,3,1],
3
[5,2,1,1,3,1,2,4,1,1,2,2,2,1,19,2,1,7],
4
[2,2,1,5,6,1,2,3,9,2,1,1,2,6,1,1,2,3,1,1,2],
5
[29,44,5,8,17,20,26,47,80,29,47,17,23,26,46,69,8,2,5,38,8,5,5]]
6
Advertisement
Answer
Try:
JavaScript
1
12
12
1
old = [['29,1,22,14,32,11,11,3'],
2
['2,3,1,2,1,4,1,1,3,1'],
3
['5,2,1,1,3,1,2,4,1,1,2,2,2,1,19,2,1,7'],
4
['2,2,1,5,6,1,2,3,9,2,1,1,2,6,1,1,2,3,1,1,2'],
5
['29,44,5,8,17,20,26,47,80,29,47,17,23,26,46,69,8,2,5,38,8,5,5']]
6
7
new = [[int(x) for x in sublst[0].split(',')] for sublst in old]
8
# new = [list(map(int, sublst[0].split(','))) for sublst in old] # an alternative
9
10
print(new)
11
# [[29, 1, 22, 14, 32, 11, 11, 3], [2, 3, 1, 2, 1, 4, 1, 1, 3, 1], [5, 2, 1, 1, 3, 1, 2, 4, 1, 1, 2, 2, 2, 1, 19, 2, 1, 7], [2, 2, 1, 5, 6, 1, 2, 3, 9, 2, 1, 1, 2, 6, 1, 1, 2, 3, 1, 1, 2], [29, 44, 5, 8, 17, 20, 26, 47, 80, 29, 47, 17, 23, 26, 46, 69, 8, 2, 5, 38, 8, 5, 5]]
12
You need to use split
to parse each long string into small strings, and then apply int
to convert a string into an int.