List comprehension on a nested list?

后端 未结 12 1199
情话喂你
情话喂你 2020-11-22 07:57

I have this nested list:

l = [[\'40\', \'20\', \'10\', \'30\'], [\'20\', \'20\', \'20\', \'20\', \'20\', \'30\', \'20\'], [\'30\', \'20\', \'30\', \'50\', \'         


        
12条回答
  •  清歌不尽
    2020-11-22 08:27

    If you don't like nested list comprehensions, you can make use of the map function as well,

    >>> from pprint import pprint
    
    >>> l = l = [['40', '20', '10', '30'], ['20', '20', '20', '20', '20', '30', '20'], ['30', '20', '30', '50', '10', '30', '20', '20', '20'], ['100', '100'], ['100', '100', '100', '100', '100'], ['100', '100', '100', '100']] 
    
    >>> pprint(l)
    [['40', '20', '10', '30'],
    ['20', '20', '20', '20', '20', '30', '20'],
    ['30', '20', '30', '50', '10', '30', '20', '20', '20'],
    ['100', '100'],
    ['100', '100', '100', '100', '100'],
    ['100', '100', '100', '100']]
    
    >>> float_l = [map(float, nested_list) for nested_list in l]
    
    >>> pprint(float_l)
    [[40.0, 20.0, 10.0, 30.0],
    [20.0, 20.0, 20.0, 20.0, 20.0, 30.0, 20.0],
    [30.0, 20.0, 30.0, 50.0, 10.0, 30.0, 20.0, 20.0, 20.0],
    [100.0, 100.0],
    [100.0, 100.0, 100.0, 100.0, 100.0],
    [100.0, 100.0, 100.0, 100.0]]
    

提交回复
热议问题