Python之高级特性
这里需要注意的是,test[0:3]当中并不包含test[3],它的真实含义是,从下标为0的元素开始,直到索引3为止,但是不包含索引3。切记不要理解为连续取3个数字。
为了方便,如果下标是从0开始的,我们可以直接省略0,写成,test[:3],如下:
前面我们讲过了list的倒数第一个元素可以用-1的下标来表示,这里我们同样可以用负数的下标来做切片,如下:
同样,省略最终的下标,则python会输出到这个list的末尾。
除此之外,设想这样一种情况,我们想要取出来一个list中的所有偶数下标,就需要每隔2个数字取一个下标,我们可以这样写:list[:10:2],表示从第一个数字到第九个数字,每隔2个数取一个,如下:
当我们需要对整个list每隔3个数字取一个,则可以使用list[::3]的方法。
同样,这样的切片操作,可以用在tuple和一般的字符串上面:
迭代
在Python中,迭代是使用for...in...来完成的,Python的for循环和C++的for循环有一些不同,它的抽象程度相对更高,它可以对一些没有下标的数据类型进行迭代,例如dict这种的:
我们可以直接通过一个for循环打印dic中的key,但是从结果进行分析,输入的key顺序是XiaoMing、XiaoZhang、Xiaowang,但是输出的顺序并不相符,这是因为dict默
情况下是没有顺序的,也就不存在下标的概念。
当我们需要打印出来每一个key对应的value时,需要使用如下语句:
当我们需要打印dict中的key和value时,需要使用如下语句:
同样的,字符串、list、tuple都是可迭代的对象,都可以使用迭代的方法进行迭代。
在迭代元素的过程中,我们有时候想要把元素下标和元素本身都输出出来,这个时候,我们可以使用python内置的enumerate函数来把一个可迭代对象变为一个索引-元素对,这样就可以同时迭代索引和元素本身,如下: