如果给定一个list或者tuple,我们可以通过for循环来遍历这个list或者tuple,这种遍历我们称为迭代、
如何判断一个对象是可迭代对象呢?方法是通过 collections 模块 的 Iterable 类型判断:
两个变量进行循环迭代。
引入两个变量的python for循环
for x,y in [(1,1),(2,4),(3,9)]:
print(x,y)
小结:任何可迭代对象都可以作为for循环,包括我们自定义的数据类型,只要符合迭代条件,就可以使用for循环。
列表生成式
列表生成式,是python内置的非常简单却强大的可以用来创建list的生成式、
print(list(range(1,11)))
如果要生成[1*1,2*2,3*3,4*4,,,10*10]:
L = [ ]
for x in rang(1,11):
L.append(x*x)
print(L)
for 循环后面还可以加上 if 的判断,这样我们就可以筛选出仅偶数的平方:
[x*x for x in range(1,11) if x % 2 == 0]
[4,16,36,64,100]
可以直接使用for循环的数据类型有以下几种:
1、集合数据类型,如list、tuple、dict、set、str等;
2、一类是generator,包括生成器和带yield的generator function。
这些可以直接作用于for循环的对象统称为可迭代对象:Iterable
可以使用isinstance()判断一个对象是否是Iterable对象:
小结:
把函数作为参数传入,这样的函数称为高阶函数,函数式编程就是指这种高度抽象的编程范式。
map/reduce
python内建了map()和reduce() 函数。
map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回。
filter() 函数
filter() 函数是用于过滤序列的,他和map()类似,也接受一个函数和一个序列。和map()不同的是,filter()把每个
例如:过滤掉偶数,只留下奇数
例如:把一个序列中的空字符串删掉,
sorted
排序算法
在python中,内置了sorted()函数就可以对list进行排序
sorted([36,5,-12,-9,24])
[-12,-9,5,24,36]
sort默认从小到大进行排序。它还可以搭配一个key函数来实现自定义的排序。俩如按照绝对值大小进行排序:
这里我们按照名字的首字母从a-z进行排序,并且忽略大、小写。(key=str.lower)
函数作为返回值
只有调用函数 f 的时候,才真正计算求和的结果:
闭包
匿名函数
我们有时候不需要显式地定义函数,直接传入匿名函数更方便。
例如:list(map(lambda x : x*x,[1,2,3,4,5,6,7,8,9]))
[1,4,9,16,25,36,49,64,81]
通过对比可以看出,匿名函数lambda x:x*x 实际上就是:
def f(x):
return x*x
关键字lambda表示匿名函数,冒号前面的x表示函数参数。
装饰器
由于函数也是一个对象,而且函数对象可以被赋值给变量,所以,通过变量也能调用该函数。
偏函数
Partial function
每一个包目录下面都会有一个__init__.py 的文件,不然Python 就把这个目录当成普通目录,而不是一个包。
作用域: private和public ,前面一个表示私有的类型,而public则是公有类型。
greeting() 函数不关心内部的private函数细节,这是一种有效的封装方式。
TRANSLATE with x
English
Arabic | Hebrew | Polish |
Bulgarian | Hindi | Portuguese |
Catalan | Hmong Daw | Romanian |
Chinese Simplified | Hungarian | Russian |
Chinese Traditional | Indonesian | Slovak |
Czech | Italian | Slovenian |
Danish | Japanese | Spanish |
Dutch | Klingon | Swedish |
English | Korean | Thai |
Estonian | Latvian | Turkish |
Finnish | Lithuanian | Ukrainian |
French | Malay | Urdu |
German | Maltese | Vietnamese |
Greek | Norwegian | Welsh |
Haitian Creole | Persian | |
TRANSLATE with
COPY THE URL BELOW
Back
EMBED THE SNIPPET BELOW IN YOUR SITE
Enable collaborative features and customize widget: Bing Webmaster Portal
Back