如果给定一个list或者tuple,我们可以通过for循环来遍历这个list或者tuple,这种遍历我们称为迭代、

python 迭代法 python迭代法bound怎么确定_迭代

如何判断一个对象是可迭代对象呢?方法是通过 collections 模块 的 Iterable 类型判断:

python 迭代法 python迭代法bound怎么确定_python_02

 

两个变量进行循环迭代。

 

 

python 迭代法 python迭代法bound怎么确定_python_03


引入两个变量的python   for循环

for x,y in [(1,1),(2,4),(3,9)]:

  print(x,y)

python 迭代法 python迭代法bound怎么确定_python_04

 

小结:任何可迭代对象都可以作为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)

python 迭代法 python迭代法bound怎么确定_迭代_05

 

 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返回。

python 迭代法 python迭代法bound怎么确定_python 迭代法_06

 

 

filter() 函数
filter() 函数是用于过滤序列的,他和map()类似,也接受一个函数和一个序列。和map()不同的是,filter()把每个

例如:过滤掉偶数,只留下奇数

python 迭代法 python迭代法bound怎么确定_迭代_07


 

python 迭代法 python迭代法bound怎么确定_python_08

 

 例如:把一个序列中的空字符串删掉,

python 迭代法 python迭代法bound怎么确定_python 迭代法_09

 

 

sorted
排序算法
在python中,内置了sorted()函数就可以对list进行排序
sorted([36,5,-12,-9,24])
[-12,-9,5,24,36]

sort默认从小到大进行排序。它还可以搭配一个key函数来实现自定义的排序。俩如按照绝对值大小进行排序:

python 迭代法 python迭代法bound怎么确定_python_10

 

 这里我们按照名字的首字母从a-z进行排序,并且忽略大、小写。(key=str.lower)

python 迭代法 python迭代法bound怎么确定_迭代_11

 

 

函数作为返回值

python 迭代法 python迭代法bound怎么确定_for循环_12


只有调用函数 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 就把这个目录当成普通目录,而不是一个包。

python 迭代法 python迭代法bound怎么确定_python_13

 

 作用域:  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