单个整数列表的列表,列出单个整数的列表

问题描述 投票:0回答:2

我有以下代码,我希望它成为整数列表的列表。目前,它是单整数列表的列表。

 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)

我希望它是单个整数列表的列表(不是单个整数列表的列表)。

python list
2个回答
2
投票

另一种方法是使用mapsum函数:

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
投票

像这样简单的东西应该有效

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]]
>>> 
© www.soinside.com 2019 - 2024. All rights reserved.