Список списков одно целых списков в список списков одно целых - PullRequest
0 голосов
/ 25 марта 2019

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

 timecolumn = [
     [[19310]]
     [[19310], [19460]],
     [[19310], [19460], [19800]],
     [[19310], [19460], [19800], [20260]],
     [[19310], [19460], [19800], [20260], [20880]],
     [[19310], [19460], [19800], [20260], [20880], [21190]],
     [[19460]],
     [[19460], [19800]],
     [[19460], [19800], [20260]],
     [[19460], [19800], [20260], [20880]],
     [[19460], [19800], [20260], [20880], [21190]],
     [[19800]],
     [[19800], [20260]],
     [[19800], [20260], [20880]],
     [[19800], [20260], [20880], [21190]],
     [[20260]],
     [[20260], [20880]],
     [[20260], [20880], [21190]],
     [[20880]],
     [[20880], [21190]],
     [[21190]]
]

Я пробовал что-то подобное, но я уверен, что есть гораздо более простой способ:

for row in timecolumn:
    if len(row) > 1:
        n = len(row)
        l = []
        count = 0
        for b in row:
            if count != n:
                l.append(b)
                count = count + 1

        diffcolumn.append(l)

Я хочу, чтобы это был список списков из целых чисел (а не список из списков из целых чисел).

Ответы [ 2 ]

2 голосов
/ 25 марта 2019

Другим способом было бы использование map с функцией sum:

timecolumn = list(map(lambda elem: sum(elem,[]), timecolumn))
print(timecolumn)

Результат:

[[19310], [19310, 19460], [19310, 19460, 19800], [19310, 19460, 19800, 20260], [19310, 19460, 19800, 20260, 20880], [19310, 19460, 19800, 20260, 20880, 21190], [19460], [19460, 19800], [19460, 19800, 20260], [19460, 19800, 20260, 20880], [19460, 19800, 20260, 20880, 21190], [19800], [19800, 20260], [19800, 20260, 20880], [19800, 20260, 20880, 21190], [20260], [20260, 20880], [20260, 20880, 21190], [20880], [20880, 21190], [21190]]
2 голосов
/ 25 марта 2019

Что-то простое, как это должно работать

outer = [[item[0] for item in inner] for inner in timecolumn]

При условии, что внутренние списки содержат только один элемент

Пример:

timecolumn = [[[19310]],
    [[19310], [19460]],
    [[19310], [19460], [19800]],
    [[19310], [19460], [19800], [20260]],
    [[19310], [19460], [19800], [20260], [20880]],
    [[19310], [19460], [19800], [20260], [20880], [21190]],
    [[19460]],
    [[19460], [19800]],
    [[19460], [19800], [20260]],
    [[19460], [19800], [20260], [20880]],
    [[19460], [19800], [20260], [20880], [21190]],
    [[19800]],
    [[19800], [20260]],
    [[19800], [20260], [20880]],
    [[19800], [20260], [20880], [21190]],
    [[20260]],
    [[20260], [20880]],
    [[20260], [20880], [21190]],
    [[20880]],
    [[20880], [21190]],
    [[21190]]
]

outer = [[item[0] for item in inner] for inner in timecolumn]

Выход:

$ python -i timecolumn.py 
>>> outer
[[19310], [19310, 19460], [19310, 19460, 19800], [19310, 19460, 19800, 20260], [19310, 19460, 19800, 20260, 20880], [19310, 19460, 19800, 20260, 20880, 21190], [19460], [19460, 19800], [19460, 19800, 20260], [19460, 19800, 20260, 20880], [19460, 19800, 20260, 20880, 21190], [19800], [19800, 20260], [19800, 20260, 20880], [19800, 20260, 20880, 21190], [20260], [20260, 20880], [20260, 20880, 21190], [20880], [20880, 21190], [21190]]
>>> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...