为什么[range10]和list[range10]不一样
今天在学习群里看到一个有意思的问题:为什么[range(10)]和list(range(10))不一样
首先我们来看下他们的打印结果
list1=list(range(10))
list2 = [range(10)]
print(list1)
print(list2)
'''
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[range(0, 10)]
'''
我们可以看到确实是两个不同的结果,那么为什么会这样呢,我们可以来打印两个数列的长度和类型看一下
list1=list(range(10))
list2 = [range(10)]
print(list1,len(list1),type(list1[0]))
print(list2,len(list2),type(list2[0]))
'''
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 10 <class 'int'>
[range(0, 10)] 1 <class 'range'>
'''
可以明显的看到,list1的长度是10,list2的长度是1,而且list1[0]的类型是int,list2[0]的类型是range,我记得之前有个脑筋急转弯,“把大象装进冰箱里面需要几步”,list1可以理解为把大象切成小块儿装入冰箱,list2是直接把大象装进冰箱,所以list1里面是10块儿大象,list里面是一头大象。