Python中for循环操作

Python publisher01 16℃

注意: 升级到python3的同学应该会注意到以前经常用的xrange没了!

是的,python3的range就是xrange。直接看效果!

Python 2.7.13 (v2.7.13:a06454b1afa1, Dec 17 2016, 20:53:40) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> type(range(10))
<type 'list'>

python2中,range的返回值是list,这意味着内存将会分布相应的长度的空间给list。

>>> print(sys.version)
3.5.3 (v3.5.3:1880cb95a742, Jan 16 2017, 16:02:32) [MSC v.1900 64 bit (AMD64)]
>>> type(range(10))
<class 'range'>

python3中返回的是一个对象,并没有将数据完全实例化,所以内存中只有一个对象的空间,对性能优化还是很有帮助的。

其他案例

""" 欢迎关注 "码农架构" 微信公众号,热爱开源,拥抱开源。一个IT民工的技术之路经验分享。
    - 问题咨询 / 建议
    1.关注微信公众号 "码农架构" 后私信
    2.可发送邮件: li.shangzhi@aliyun.com
"""
# !/usr/bin/python
# -*- coding: UTF-8 -*-
for letter in 'Python':  # 第一个实例
    print('当前字母 :', letter)
fruits = ['banana', 'apple', 'mango']
for fruit in fruits:  # 第二个实例
    print('当前水果 :', fruit)
fruits = ['banana', 'apple', 'mango']
# 开始,结束,步长
for index in range(0, 3, 2):
    print(index)
    print(u'当前水果 :', fruits[index])
list = [1, 2, 3, 4, 5, 6, 7]
# xrange是一个生成器,在操作大量数据的时候不会上来开辟一块很大的内纯空间,形内较好
for i in range(0, 7, 2):
    print(list[i:i + 2])
# i 为索引,v为值
for i, v in enumerate(list):
    print(i, v)
d2 = {'a': 'A', 'b': 'B', 'c': 'C', 'd': 'D'}
for k, v in d2.items():
    print(k, v)
  • 返回结果
Connected to pydev debugger (build 183.5912.18)
当前字母 : P
当前字母 : y
当前字母 : t
当前字母 : h
当前字母 : o
当前字母 : n
当前水果 : banana
当前水果 : apple
当前水果 : mango
0
当前水果 : banana
2
当前水果 : mango
[1, 2]
[3, 4]
[5, 6]
[7]
0 1
1 2
2 3
3 4
4 5
5 6
6 7
a A
b B
c C
d D
Process finished with exit code -1

转载请注明:Python量化投资 » Python中for循环操作

喜欢 (0)or分享 (0)