python高级特性总结

Python追求的是代码越少越好,越简单越好。基于这一思想,以下将总结一些非常有用的高级特性:

1、切片(Slice)

L=['alice','bob','console','dog']
L[0:3]简写为L[:3] //取前3个元素
L[-3:] //取后3个元素
L[1:2] //取第1到第3个元素
L = list(range(100))//定义100个数
L[:10] // 取前十个数
L[:10:2] //前十个数 每两个取一个
L[::5] //所有数每5个取一个

Python没有针对字符串的截取函数,只需要切片一个操作就可以完成,非常简单。

'changhf'[:3] // 输出'cha'
'changhf'[::2] // 输出'cagf'

Python内置的enumerate函数可以把一个list变成索引-元素对,这样就可以在for循环中同时迭代索引和元素enumerate([2,4,67])

for i, value in enumerate(['A', 'B', 'C']):
    print(i, value)
//输出
0 A
1 B
2 C

2、迭代

list/tuple/dict/generator/字符串等都是可以迭代的

d = {'a': 1, 'b': 2, 'c': 3}
for key in d:
    print(key)
for value in d.values():
    print(value)
for k, v in d.items():
    print(k,v)

3、列表生成式

列表生成式是Python内置的非常简单却强大的可以用来创建list的生成式。

list(range(1, 11)) //生成110的数字
L = [x * x for x in range(1, 11)] //生成[1,4,9,16...100]
L1 = ['Hello', 'World', 18, 'Apple', None]
L2 = [m.lower() for m in L1 if isinstance(m,str)]
print(L2) //输出'hello', 'world', 'apple'

4、生成器generator

与列表生成式的区别就是[]换成(),如果一个list数据量特别大,就会造成内存资源的浪费,在Python中,这种一边循环一边计算的机制,称为生成器:generator

L=[n*n for n in range(10)]
g = (n*n for n in range(10))
for x in g:
    print(x)

至于生成器里的yield等方法需要再去了解

5、Iterator迭代器

凡是可作用于for循环的对象都是Iterable类型;Iterable转换为Iterator,使用iter(),比如iter([])
可以使用isinstance()判断一个对象是否是Iterable对象:

from collections import Iterable
isinstance([], Iterable)

猜你喜欢

转载自blog.csdn.net/chang_li/article/details/81566862
今日推荐