python高级特性总结

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

1、切片(Slice)
L=['alice','bob','console','dog']
L[0:3]简写为L[:3] //取前3个元素,从索引0开始,到索引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)) //生成1到10的数字
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)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值