我正在尝试从一个范围中创建一个列表,但是当我将其粘贴到另一个列表中时,我得到的是类,而不是我期望的列表的列表-[[0,1,2]]
代码:
initial_list = range(3)
list_of_lists = [initial_list]
for i in list_of_lists:
print(i, type(i))
此输出range(0,3), <class 'range'>
但是,我想要[[0,1,2]]
有人知道如何强制扩大范围吗?
This answer解释您很接近!如果您使用的是Python 2.x,则此方法将奏效,因为在2.x中,range()
返回一个列表。但是,在3.x中,range()
返回一个迭代器。
用list(range(3))
扩展以获得所需的结果。
您可以将其附加到anotehr列表中。这是我所做的事情:
initial_list = []
for i in range(3):
initial_list.append(i)
list_of_lists = [initial_list]
然后显示在IDLE中:
>>> list_of_lists
[0, 1, 2]]
您可以只使用*
解压运算符来扩展范围
initial_list = [*range(3)] # expand range: [0, 1, 2]
list_of_lists = [initial_list]
print (list_of_lists)
输出:
[[0, 1, 2]]