Discuss / Python / 有个问题想请教一下

有个问题想请教一下

Topic source

G好大的鱼

#1 Created at ... [Delete] [Delete and Lock User]

请问

L=list(range(100))

L=[range(100)]

有什么区别啊?

廖雪峰

#2 Created at ... [Delete] [Delete and Lock User]

区别很大,你分别print出来看看一共有几个元素

G好大的鱼

#3 Created at ... [Delete] [Delete and Lock User]

L=list(range(10)) print出来是[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

L=[range(10)] print出来是[range(0, 10)]

请问有什么区别?感觉意义一样,也还是list

廖雪峰

#4 Created at ... [Delete] [Delete and Lock User]

第一个list有10个数,第二个list只有一个对象

Dreamer_DK

#5 Created at ... [Delete] [Delete and Lock User]

在解释器里分别使用

list(range(10))

range(10)

结果就有所不同, 第一个结果是一个0-10的数字列表 第二个结果是range(0,10)

罐罐姥爷

#6 Created at ... [Delete] [Delete and Lock User]

for i in range(0,10): print(i) 和 i=list(range(10)) print(i) 那他们的结果算一样的吗?

tt1296116093

#7 Created at ... [Delete] [Delete and Lock User]
>>> list_1 = list(range(100))
>>> list_1
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99]
>>> list_2 = [range(100)]
>>> list_2
[range(0, 100)]
>>> list_2[0][1]
1

大概就是这意思吧 list_1 即

list(range(100))

表示的是一个由 0~99 共计100个数构成的 一维数组

list_2 即

[range(100)]

表示的一个有 1 x 100 的 二维数组,这个数组的第一项是一个由一百个元素构成的数组

将list_2表示成

[range(100),元素2,元素3,,,,,]

是不是就比较好理解一些

这个可以看c语言中的数组相关内容就容易理解了

L=list(range(10)) print出来是[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 这里是把range(10)的10个数形成一个列表list,然后赋值给L

L=[range(10)] print出来是[range(0, 10)] 这里是range(10)作为L这个list的一个元素

iSilent94021

#9 Created at ... [Delete] [Delete and Lock User]
在此插入代码
for i in range(0,10):
    print(i)

和 i=list(range(10)) print(i) 那他们的结果算一样的吗?

答案不一样

>>> for i in range(0,10):
...     print(i)
... 
0
1
2
3
4
5
6
7
8
9
>>> i = list(range(10))
>>> print(i)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

  • 1

Reply