您的位置:首页 > 编程语言 > Python开发

python的学习 高级特性(第一天)

2018-06-11 11:14 302 查看

Python中代码遵循越少越好的原则,代码越少开发效率越高

高级特性可以用少的代码实现一些较复杂的功能。

1.切片(slice)

该功能针对list和tuple以及字符串类型,是截取list、tuple或字符串中的一部分的一种简单操作;

对目标数据的索引指定范围的方法实现,使用python提供的操作符‘:’;

例:L[0:3],代表截取L[0],L[1],L[2];即包含第一个索引的元素,不包含最后一个索引的元素。

当索引中含有0时,0可以省略;例:L[0:2]=L[:2],L[-2:0]=L[-2:];(索引-1,代表倒数第一个元素);

当以上面两个例子书写时,可以更简便的理解为,取前两个元素,取后两个元素;

当仅有操作符':'时,代表取所有元素;

当有两个操作符时,第二个后面的数代表,再次取值的间隔;例L[:10:2],前十个数,每两个取一个(5个)。

注意:切片的操作不会改变数据的类型。

2.迭代(iterable)

python中通过for...in循环遍历list或tuple,这种遍历我们就称为迭代类型;

但是python中可用for循环进行迭代的对象却很多,

可以通过collections模块的Iterable类型来判断:

[code]>>> from collections import Iterable
>>> isinstance('abc', Iterable) # str是否可迭代(isinstance是判断类型的函数)
True
>>> isinstance([1,2,3], Iterable) # list是否可迭代
True
>>> isinstance(123, Iterable) # 整数是否可迭代
False

dict数据类型也是可以迭代的,默认迭代的是其key,如果要迭value可以使用:for value in d.values(),同时迭代key和value,可以使用for k,v in d.items()。

迭代list实现索引与元素的形式,可以使用python内置的enumerate函数:

[code]>>> for i, value in enumerate(['A', 'B', 'C']):
...     print(i, value)
...
0 A
1 B
2 C

注意:任何可迭代的对象都可以使用for循环进行迭代,无序的数据迭代出的数据也是无序的(例如dict数据类型)

 

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: