Lots of Lists of Lists - возвращать только те списки, которым соответствует первый индекс - PullRequest
0 голосов
/ 06 мая 2018

У меня есть веб-сокет, который возвращает списки или списки списков, и я хочу вытащить только отдельные списки, которые соответствуют критериям, которые я хочу.

Пример данных:

[['o', 0, '9726.85438804', '0.40716427']]
[['o', 0, '9909.02930523', '0.00000000'], ['o', 0, '9855.53483394', '12.07669000']]
[['o', 0, '9669.50657753', '0.00000000'], ['o', 0, '9669.60657753', '0.30000000']]
[['o', 1, '9660.00000000', '0.00000000'], ['o', 1, '9658.52360670', '0.00000000'], ['o', 1, '9652.51635910', '0.00000000'], ['o', 1, '9652.50517986', '0.00244445'], ['t', '23068523', 0, '9660.00000000', '0.00191511', 1525594948], ['t', '23068524', 0, '9660.00000000', '0.00160000', 1525594948], ['t', '23068525', 0, '9658.52360670', '0.00020655', 1525594948], ['t', '23068526', 0, '9652.51635910', '0.00020668', 1525594948], ['t', '23068527', 0, '9652.50517986', '0.10115560', 1525594948]]
[['o', 0, '9727.41662891', '0.58301369']]
[['o', 1, '9642.52790569', '0.00000000'], ['o', 1, '9652.52790569', '0.40000000']]
[['o', 1, '9650.82850048', '0.00000000']]
[['o', 0, '9669.60657753', '0.29000000'], ['t', '23068528', 1, '9669.60657753', '0.01000000', 1525594956]]

Я хочу извлечь / напечатать любой подсписок с первым индексом 't'. Итак, из вышесказанного он вернется:

['t', '23068523', 0, '9660.00000000', '0.00191511', 1525594948]
['t', '23068524', 0, '9660.00000000', '0.00160000', 1525594948]
['t', '23068525', 0, '9658.52360670', '0.00020655', 1525594948]
['t', '23068526', 0, '9652.51635910', '0.00020668', 1525594948]
['t', '23068527', 0, '9652.50517986', '0.10115560', 1525594948]
['t', '23068528', 1, '9669.60657753', '0.01000000', 1525594956]

1 Ответ

0 голосов
/ 06 мая 2018

простая петля

for l in nested_list:
    if l[0] == 't':
        print (l)

если есть внешний список, просто добавьте цикл. один вкладыш с фильтром

filter(lambda x: x[0] == 't', nested_list) 
...