将数字反向添加到列表中

时间:2014-01-28 18:09:07

标签: python

我正在尝试将num中的数字追加到第一个元组的列表中,但我无法弄清楚如何做到这一点。我想出了如何使用列表来完成它,但我不确定如何在没有列表的情况下执行此操作。我尝试从[i for i in revers(range(1,num + 1))]中删除[],但这不起作用。

到目前为止我所拥有的:

def put_to_list(num):
    items = ((0, []), (1, []), (2, []))
    items[0][1].append([i for i in reversed(range(1, num + 1))])
    return items[0]

上面的代码我得到了:

put_to_list(10)
(0, [[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]])

有没有办法做我做的事情而不是括号,所以:

>>> put_to_list(10)
(0, [10, 9, 8, 7, 6, 5, 4, 3, 2, 1])

2 个答案:

答案 0 :(得分:6)

改为使用list.extend()

items[0][1].extend([i for i in reversed(range(1, num + 1))])

你甚至不需要在那里使用列表理解:

items[0][1].extend(reversed(range(1, num + 1)))

或将reversed()调用移到列表定义中,但在其上调用list()

def put_to_list(num):
    items = ((0, list(reversed(range(1, num + 1)))), (1, []), (2, []))
    return items[0]

进一步简化为:

def put_to_list(num):
    return (0, list(reversed(range(1, num + 1)))

甚至:

def put_to_list(num):
    return (0, list(range(num, 0, -1)))

答案 1 :(得分:0)

def put_to_list(num):
    items = ((0, []), (1, []), (2, []))
    items[0][1].append([i for i in reversed(range(1, num + 1))])  # This line
    return items[0]

在我注意到的行中,您将列表附加到列表中。您可以使用扩展并丢失额外的括号,这是导致您创建列表的原因,然后将该列表附加到items