Python入门——迭代的使用

1.迭代

对一个集合,无论有无序,还可以依次取出集合的每一个元素

集合类型
有序list、stuple、str、unicode
无序set
无序并且具有key-valuedict

迭代在python中,可以说就是for循环,
但是迭代又与一般的下标访问数组不同,前者只关心迭代结果,不关心内部的实现

2.索引迭代

可取得索引,用到enumerate()函数,按照自己定义索引输出,也可以用zip()函数

#enumerate()函数,可以把['a','b','c']变成[(0,'a'),(1,'b'),(2,'c')]
#可以发现,enumerate()函数把1个元素变成了2个元素,所以需要两个索引接收,例:
for index,name in enumerate(L)
    print index,'-',name

#zip()函数,可以把2个list变为1个list,例:
print zip([1,2,3],['a','b','c'])
#打印返回 [(1,'a'),(2,'b'),(3,'c')]


#例:
#从0开始索引,用enumerate():
for index,name in enumerate(L):
    print index,'-',name

#从1开始索引,用zip():
for index,name in zip(range(1,len(L)+1),L):
    print index,'-',name

3.迭代dict和value

#方法一:
#使用dict.values(),可以把dict转换为一个包含所有value的list
#例:
d={'a':1,'b':2,'c':3}
for v in dict.values():
    print v


#方法二:
#使用itervalues(),效果与values相同
#例:
for v in dict.itervalues():
    print v

!上述两种方法有什么不同?

1.values() 方法实际上把一个 dict 转换成了包含 value 的list。
2. 但是itervalues() 方法不会转换,它会在迭代过程中依次从 dict 中取出 value,
所以 itervalues() 方法比 values() 方法节省了生成 list 所需的内存。
3. 打印itervalues() 发现它返回一个 < dictionary-valueiterator > 对象,
因为在Python中,for 循环可作用的迭代对象远不止list,tuple,str,unicode,dict等,
任何可迭代对象都可以作用于for循环,而内部如何迭代我们通常并不用关心。

4.迭代dict的key和values

#方法一:
#使用items(),返回一个list,包含tuple的list

#方法二:
#使用iteritems(),不用转换为list,直接迭代给出tuple

#例:
d={'a':1,'b':2,'c':3}
sum=0.0
for key,value in d.iteritems():
    sum=sum+value
    print key,'-',value
print sum
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值