b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

python 变量命名规范#是注释。通过空格进行缩进,当一行(6)

电脑杂谈  发布时间:2018-02-10 22:04:08  来源:网络整理

python内置的enumerate函数可以将list变成索引-元素对。这样可以在for中迭代索引和对象本身:

>>> l = ['a','b','c','d']
>>> for i,value in enumerate(l):
...     print(i, value)
...
0 a
1 b
2 c
3 d

python内置了简单而强大的生成list的方式,通过使用列表生成式可以写出非常简洁的代码。

此外,还可以在for...in...后面加上if进行判断。例如:生成3-10中偶数的平方的list:

等价于

>>> L=[]
>>> for x in range(3,11):
...     if x % 2 == 0:
...         L.append(x * x)
...
>>> L
[16, 36, 64, 100]

列表生成式也可以使用两个变量来生成list:

通过列表,可以直接创建一个列表。但是,假如创建一个包含100万个元素的列表,需要占用大量的内存空间,而我们只需要前几个元素,那么大多数元素占用的内存空间就浪费了。

对于这种情况,python提供了(generator),能一边循环一边计算,从而不需要创建完整的list,节省了内存空间。

第一种创建generator的方式:将[]改为()

>>> L = [x * x for x in range(1,10)]    # 创建list
>>> L                                   # 打印list的每一个元素
[1, 4, 9, 16, 25, 36, 49, 64, 81]
>>> g = (x * x for x in range(1,10))    # 创建generator
>>> g
<generator object <genexpr> at 0x1024e0bf8>
>>> next(g)     # 用next()函数获取generator下一个返回值
1
>>> next(g)
4

next()会计算g的下一个元素,当没有元素时,会抛出StopIteration异常。generator是可迭代对象,可以使用for循环来代替next()

>>> g = (x * x for x in range(1,5))
>>> for n in g:
...     print(n)
...
1
4
9
16

第二种创建generator的方式:函数定义中使用yield,将函数变成generator

下面是生成菲波那切数列的函数,除第一个和第二个数之外,后面每个数等于前两个数的和:

def fib(max):
    n, a, b = 0, 0, 1
    while n < max:
        print(b)
        a, b = b, a + b
        n = n + 1
    return 'done'

fib(6)      # 输出菲波那切数列前6个数

这种逻辑非常类似generator,可以从第一个元素开始,推算后面任意的元素。将print(b)改为yield b,该函数就就变成了generator。generator和普通函数执行流程不一样:


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-70754-6.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...