How to flatten only one sub list of list of lists

Sayth Renshaw flebber.crue at gmail.com
Wed Mar 1 01:41:34 EST 2017


How can I flatten just a specific sublist of each list in a list of lists?

So if I had this data


[   ['46295', 'Montauk', '3', '60', '85', ['19', '5', '1', '0 $277790.00']],
    ['46295', 'Dark Eyes', '5', '59', '83', ['6', '4', '1', '0 $105625.00']],
    ['46295', 'Machinegun Jubs', '6', '53', '77', ['6', '2', '1', '1 $71685.00']],
    ['46295', 'Zara Bay', '1', '53', '77', ['12', '2', '3', '3 $112645.00']]]


How can I make it be


[   ['46295', 'Montauk', '3', '60', '85', '19', '5', '1', '0 $277790.00'],
    ['46295', 'Dark Eyes', '5', '59', '83', '6', '4', '1', '0 $105625.00'],
    ['46295', 'Machinegun Jubs', '6', '53', '77', '6', '2', '1', '1 $71685.00'],
    ['46295', 'Zara Bay', '1', '53', '77', '12', '2', '3', '3 $112645.00']]

Been looking around but most solutions just entirely flatten everything.
This was popular on SO but yeah it flattens everything  I want to be more selective

def flatten(lst):
    for elem in lst:
        if type(elem) in (tuple, list):
            for i in flatten(elem):
                yield i
        else:
            yield elem

What I am thinking is that if for each list the sublist should be at index 1, so

[0][1]
[1][1]
[2][1]

for item in list:
    item[1] - somehow flatten.

Thoughts?

Sayth



More information about the Python-list mailing list