首页 > 代码库 > Python学习笔记(十)—— 高级特性

Python学习笔记(十)—— 高级特性

一、切片

1、定义:

      经常取指定索引范围的操作,用循环十分繁琐,因此,Python提供了切片(Slice)操作符。

 

2、语法:

A[1:3]          取出1到3,都是正数的情况下,缺填的为0(第一个),end(最后一个)

B[-3:]           取出倒数第三个到倒数第一个,都是负数的情况下,缺填的为-1(最后一个)

C[1:10:2]     从1到10,每2个取一个

  跟matlab差不多的语法,就是对一个向量可以进行矩阵操作。可以对List.tuple,string,dict,set等使用

 

二、切片

1、定义:

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

 

2、Python迭代特殊点:

      Python的  for循环  抽象程度要高于Java的  for循环  ,因为Python的  for循环  不仅可以用在list或tuple上,还可以作用在其他可迭代对象上。list这种数据类型虽然有下标,但很多其他数据类型是没有下标的,但是,只要是可迭代对象,无论有无下标,都可以迭代,比如dict就可以迭代:

>>> d = {‘a‘: 1, ‘b‘: 2, ‘c‘: 3}
>>> for key in d:
...     print(key)
...
a
c
b

      由于dict不是顺序排列的,所以迭代出来的结果,可能顺序不同。

 

3、dict迭代注意点:

(1)可以按照key(默认)迭代,如上

(2)也可以按照value迭代

for value in d.values()

(3)也可以两者同时迭代(python特殊点)

for k, v in d.items()

 

4、如何判断是否可迭代:使用collections模块的iterable类型进行判断

>>> from collections import Iterable
>>> isinstance(‘abc‘, Iterable) # str是否可迭代
True
>>> isinstance([1,2,3], Iterable) # list是否可迭代
True
>>> isinstance(123, Iterable) # 整数是否可迭代
False

  

5、如何实现C语言的下标实现:Python内置的enumerate函数可以把一个list变成索引-元素对

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

  

 

Python学习笔记(十)—— 高级特性