python高级特性、函数式编程、面向对象

简介:

切片

list和tuple、字符串。

L[:]

L[1:4]

L[-1]

str[::2]



迭代

python的迭代:只要是可迭代对象都可以,和下标没关系。

判断一个对象是否是可迭代的,通过collections模块中的Iterable类型判断。

1
2
3
4
5
6
7
from  collections  import  Iterable
 
isinstance ( 'abc' , Iterable)
 
isinstance ([ 1 , 2 , 3 ], Iterable)
 
isinstance ( 123 , Iterable)  - -  false

对list实现下标循环,使用python的enumerate函数把list变成索引-元素对

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
for  i, value  in  enumerate ([ 'a' 'b' 'c' ]):
     print (i, value)
     
0  a
1  b
2  c   
 
 
# 同时引用两个变量
for  x, y  in  [( 1 1 ), ( 2 4 ), ( 3 9 )]:
     print (x, y)
     
1  1
2  4
3  9


列表生成式 -- List Comprehensions

用来创建list的生成式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
list ( range ( 1 , 11 ))
[ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 ]
 
[x  *  for  in  range ( 1 11 )]
[ 1 4 9 , ...]
 
# 列表生成式中的if判断,选出符合条件的
[x  *  for  in  range ( 1 11 if  %  2  = =  0  ]
4 16 36 64 100 ]
 
[m + for  in  'abc'  for  in  'xyz' ]
[ 'ax' 'ay' 'az' 'bx' 'by' 'bz' 'cx' 'cy' 'cz' ]
 
 
# 使用列表生成式,列出目录下的所有文件和目录
import  os
[d  for  in  os.listdir( '.' )]
 
# 列表生成式使用dict生成list
=  { 'x' : 'a' 'y' : 'b' 'z' : 'c' }
[k  +  '='  +  for  k, v  in  d.items()]
[ 'y=b' 'x=a' 'z=c' ]


生成器 -- 解决列表生成式的内存溢出问题。

在循环过程中不断推算后续的元素,不必创建完整的list,节省内存。一边循环一边计算 -- 生成器 -- generator

正常的做法是:在创建了一个generator后,使用for来迭代。

定义generator的另一种方法:在函数定义中包含yield关键字。

1
2
3
4
5
6
7
def  fib( max ):
     n, a, b  =  0 0 1
     while  n <  max :
         yield  b
         a, b  =  b, a + b
         =  n + 1
     return  'done'

该generator的函数,在每次调用next()的时候执行,遇到yield语句返回,再次执行从上次返回的yield语句继续执行。












本文转自ting2junshui51CTO博客,原文链接:http://blog.51cto.com/ting2junshui/1755266 ,如需转载请自行联系原作者




相关文章
|
2月前
|
关系型数据库 开发者 Python
Python编程中的面向对象设计原则####
在本文中,我们将探讨Python编程中的面向对象设计原则。面向对象编程(OOP)是一种通过使用“对象”和“类”的概念来组织代码的方法。我们将介绍SOLID原则,包括单一职责原则、开放/封闭原则、里氏替换原则、接口隔离原则和依赖倒置原则。这些原则有助于提高代码的可读性、可维护性和可扩展性。 ####
|
2月前
|
Python
闭包(Closure)是**Python中的一种高级特性
闭包(Closure)是**Python中的一种高级特性
61 8
|
4月前
|
Python
Python面向对象(2)
【10月更文挑战第14天】
Python面向对象(2)
|
4月前
|
设计模式 程序员 C语言
Python面向对象
【10月更文挑战第13天】
Python面向对象
|
4月前
|
存储 算法 数据处理
Python函数式编程
【10月更文挑战第12天】函数式编程是一种强大的编程范式,它可以帮助我们编写更加简洁、易读、可维护和高效的代码。虽然 Python 不是一种纯粹的函数式编程语言,但它提供了许多支持函数式编程的特性和功能。通过深入了解和掌握函数式编程的概念和技巧,我们可以在 Python 编程中更好地应用函数式编程的理念,提高我们的编程水平和代码质量。
32 2
|
4月前
|
Java 程序员 C++
Python 面向对象详解!
本文详细介绍了Python中的面向对象编程(OOP),包括类、对象、继承、封装、多态和抽象等核心概念。通过具体示例,解释了如何使用类定义对象的属性和方法,以及如何通过继承实现代码重用。文章还探讨了封装和多态的重要性,并介绍了私有属性和抽象类的使用方法。最后,总结了OOP的四大支柱:封装、抽象、继承和多态,强调了这些概念在Python编程中的应用。适合Java程序员扩展Python编程知识。
113 2
|
4月前
|
存储 大数据 数据处理
Python 中的列表推导式与生成器:特性、用途与区别
Python 中的列表推导式与生成器:特性、用途与区别
45 2
|
4月前
|
Python
Python编程-关于面向对象的一些
Python编程-关于面向对象的一些
30 0
|
4月前
|
设计模式 监控 安全
Python多线程编程:特性、挑战与最佳实践
Python多线程编程:特性、挑战与最佳实践
61 0
|
4月前
|
设计模式 监控 安全
Python多线程编程:特性、挑战与最佳实践【1】
Python多线程编程:特性、挑战与最佳实践【1】
48 0

热门文章

最新文章

推荐镜像

更多