2017-08-06笔记
Posted yingchen
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2017-08-06笔记相关的知识,希望对你有一定的参考价值。
可以使用 **
操作符分拆关键字参数为字典:
>>> def parrot(voltage, state=‘a stiff‘, action=‘voom‘):
... print("-- This parrot wouldn‘t", action, end=‘ ‘)
... print("if you put", voltage, "volts through it.", end=‘ ‘)
... print("E‘s", state, "!")
...
>>> d = {"voltage": "four million", "state": "bleedin‘ demised", "action": "VOOM"}
>>> parrot(**d)
内建函数 range() 需要要独立的 start,stop 参数。你可以在调用函数时加一个 *
操作符来自动把参数列表拆开:
>>> args = [3, 6]
>>> list(range(*args))
在迭代过程中修改迭代序列不安全(只有在使用链表这样的可变序列时才会有这样的情况)。如果你想要修改你迭代的序列(例如,复制选择项),你可以迭代它的复本。使用切割标识就可以很方便的做到这一点:
>>> for w in words[:]: # Loop over a slice copy of the entire list.
... if len(w) > 6:
... words.insert(0, w)
list.
copy
()
返回列表的一个浅拷贝。等同于 a[:]
注解是以字典形式存储在函数的 __annotations__
属性中,对函数的其它部分没有任何影响。参数注解(Parameter annotations)是定义在参数名称的冒号后面,紧随着一个用来表示注解的值得表达式。返回注释(Return annotations)是定义在一个 ->
后面,紧随着一个表达式,在冒号与 ->
之间。
>>> def f(ham: 42, eggs: int = ‘spam‘) -> "Nothing to see here":
... print("Annotations:", f.__annotations__)
... print("Arguments:", ham, eggs)
...
>>> f(‘wonderful‘)
Annotations: {‘eggs‘: <class ‘int‘>, ‘return‘: ‘Nothing to see here‘, ‘ham‘: 42}
Arguments: wonderful spam
类似于嵌套函数定义,lambda 形式可以从外部作用域引用变量:
>>> def make_incrementor(n):
... return lambda x: x + n
...
>>> f = make_incrementor(42)
>>> f(0)
42
>>> f(1)
43
上面的示例使用 lambda 表达式返回一个函数。另一个用途是将一个小函数作为参数传递:
>>> pairs = [(1, ‘one‘), (2, ‘two‘), (3, ‘three‘), (4, ‘four‘)]
>>> pairs.sort(key=lambda pair: pair[1])
>>> pairs
[(4, ‘four‘), (1, ‘one‘), (3, ‘three‘), (2, ‘two‘)]
以上是关于2017-08-06笔记的主要内容,如果未能解决你的问题,请参考以下文章
[原创]java WEB学习笔记61:Struts2学习之路--通用标签 property,uri,param,set,push,if-else,itertor,sort,date,a标签等(代码片段
sh bash片段 - 这些片段大多只是我自己的笔记;我找到了一些,有些我已经找到了