我正在尝试将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])
答案 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
。