Python——序列迭代

迭代是程序中比较常用的操作,Python也是一样的,有时需要对列表、字典等数据结构进行迭代。好在Python中提供了一些用于的內建函数,通过这些函数可以实现对变量内数据的迭代遍历。
一、并行迭代:对两个序列进行迭代

# _*_ coding:utf-8 _*_
names=['one','two','three','four']
datas=[1,2,3,4]
for i in xrange(len(names)):
    print names[i],'is',datas[i]

运行结果:
===========RESTART: C:\Users\Mr_Deng\Desktop\test.py===========
one is 1
two is 2
three is 3
four is 4
>>> 

注:range函数可以产生一个数字序列,range(N)产生一个下标从0—N-1的数字序列;xrange函数类似于range函数也可以产生一个序列,不同的是range函数一次创建整个序列,xrange函数每次只创建一个数,当需要迭代非常大的序列时,xrange具有更好的效率。

使用內建的zip函数并行迭代,zip函数将两个序列压缩在一起,返回一个元组的列表:

# _*_ coding:utf-8 _*_
names=['one','two','three','four']
datas=[1,2,3,4]
for name,data in zip(names,datas):
    print name,":",data

运行结果:
===========RESTART: C:\Users\Mr_Deng\Desktop\test.py===========
one : 1
two : 2
three : 3
four : 4
>>> 

zip函数可以作用于任意多的序列,也可以用于不等长的序列,当最短的序列在遍历中首先结束时,迭代随之停止:

# _*_ coding:utf-8 _*_
names=['one','two','three','four']
for name,data in zip(names,xrange(10000)):
    print name,":",data

运算结果:
===========RESTART: C:\Users\Mr_Deng\Desktop\test.py===========
one : 0
two : 1
three : 2
four : 3
>>> 

二、编号迭代:通过获取当前对象的索引进行遍历,enumerate函数在索引的地方提供“迭代索引—值”对

# _*_ coding:utf-8 _*_
names=['one','two','three','four']
for index,name in enumerate(names):
    print index+1,":",name

运算结果:
===========RESTART: C:\Users\Mr_Deng\Desktop\test.py===========
1 : one
2 : two
3 : three
4 : four
>>> 

三、翻转和排序迭代:Python中提供了用于翻转的函数reversed和用于排序的函数sorted,其功能与列表的reverse和sort类似,不同的是reversed和sorted不是原地操作而是返回新的对象

# _*_ coding:utf-8 _*_
test=[4,2,1,5,7]
y=list(reversed(test))
print y

print list(reversed('afgsf'))

运算结果:
===========RESTART: C:\Users\Mr_Deng\Desktop\test.py===========
[7, 5, 1, 2, 4]
['f', 's', 'g', 'f', 'a']
>>> 
# _*_ coding:utf-8 _*_
test=[4,2,1,5,7]
y=sorted(test)
print y
运算结果:
===========RESTART: C:\Users\Mr_Deng\Desktop\test.py===========
[1, 2, 4, 5, 7]
>>> 
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值