Python:对列表的理解操作

Python:对列表的理解操作,python,list,Python,List,我见过这个代码 l = [2,3,4,4,5,6,3] c = (10001)*[0] for i in l: c[i] = c[i]+1 m = max(c) print m,c.index(m) 它印的是32 看起来它能储存两样东西 以下是(10001)*[0]的作用以及它的作用?此代码可能如下所示: l = [2,3,4,4,5,6,3] c = [0]*10001 for i in l: c[i] = c[i]+1 m = max(c) print m 其中c=[0]

我见过这个代码

l = [2,3,4,4,5,6,3]
c = (10001)*[0]
for i in l:
    c[i] = c[i]+1
m = max(c)
print m,c.index(m)
它印的是32 看起来它能储存两样东西
以下是(10001)*[0]的作用以及它的作用?

此代码可能如下所示:

l = [2,3,4,4,5,6,3]
c = [0]*10001
for i in l:
    c[i] = c[i]+1
m = max(c)
print m
其中
c=[0]*10001
在其中创建10001个零的列表
c=(10001)*0
就是
0

这里(10001)*[0]可以重写为10001*[0],括号是多余的。
这只是创建了一个包含100010的列表,当您尝试在Python解释器中键入
c=(10001)*0时,您看到了什么?如果您运行它,您会看到它将
0
分配给
c
。这意味着在运行
c[i]=c[i]+1
时会出现异常。当我在python终端中尝试时,它只会使c
0
。这和你看到的代码完全一样吗?它将以当前形式引发异常。这就像编写
c=0
,这是一件奇怪的事情。继续这样做,每个人都会恨你:(你甚至试着运行这个吗?