注册 登录
编程论坛 Python论坛

关于for和enumerate的问题,欢迎指导

eastd 发布于 2012-02-13 11:41, 1533 次点击
且看下面一段代码
#!/user/bin/python
#-*-coding:UTF-8-*-
# Filename: enumerate.py
values=[12,13,14,15,16,78,88.0]
a=[]
b=[]
c=[]
d=[]
e=[]
for (i,v) in enumerate(values):
        a.append([i,v])
        e.append([i,v])
print a
print e
for (i,v) in enumerate(values):
        b.append([i,v])
print b        
for (i,v) in enumerate(values):
        c.append([i,v])
print c        
for (i,v) in enumerate(values):
        d.append([i,v])
print d


        
再看下面一段为什么结果不同?

!/user/bin/python
#-*-coding:UTF-8-*-
# Filename: enumerate.py
values=[12,13,14,15,16,78,88.0]
vs=enumerate(values)
a=[]
b=[]
c=[]
d=[]
e=[]
for (i,v) in vs:
        a.append([i,v])
        e.append([i,v])
print a
print e
#vs=enumerate(values)
for (i,v) in vs:
        b.append([i,v])
print b        
for (i,v) in vs:
        c.append([i,v])
print c        
for (i,v) in vs:
        d.append([i,v])
print d
2 回复
#2
eastd2012-02-15 16:37
没人感兴趣?
#3
为Jay沉沦2012-04-10 15:51
enumerate函数返回一个enumerate对象
vs=enumerate(values)
a=[]
b=[]
c=[]
d=[]
e=[]
for (i,v) in vs:
        a.append([i,v])
        e.append([i,v])
print a
print e
这段执行完之后,vs已经被置空了(置于为什么置空,不清楚哈),后面的三个for循环都没有执行了
1