python学习笔记(三)---高级特性
一、切片
取无数多个list元素 不用一个个取得笨方法就用切片
对这种经常取指定索引范围的操作,用循环十分繁琐,因此,Python提供了切片(Slice)操作符,能大大简化这种操作。
对应上面的问题,取前3个元素,用一行代码就可以完成切片:
记住倒数第一个元素的索引是-1,第一个数的索引是0
#1.传统方法 L = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack'] R = []
#取前N个元素,也就是索引为0-(N-1)的元素,可以用循环 n=3 for i in range(n): R.append(L[i]) print( R ) #2 切片方法 print( L[0:3] ) print( L[:3] ) print( L[-2:] ) print( L[-2:-1] ) #切片操作十分有用。我们先创建一个0-99的数列 L = list(range(100)) print("前10个数") print ( L[:10]) print(" 前10个数 隔2个取1个数") print ( L[:10:2]) print(" 所有数,正向,每10个取一个数") print(L[::10]) print("后10个数") print(L[-10:]) print('直接定义取几个数') print ( 'ABCDEFG'[:3] ) print ( 'ABCDEFG'[::2] ) print((0, 1, 2, 3, 4, 5)[:3]) print( L[:] )
其实是substring
二、迭代
给定一个对象(tuple、list、dict、string字符串),我们可以通过for
循环来遍历,这种遍历我们称为迭代(Iteration)
在Python中,迭代是通过以下内容来完成的
for ... in
只要当前对象是可迭代对象,则for循环就可正常运行,判断当前对象是否可迭代,且对当前对象进行迭代
# -*- coding: utf-8 -*- from collections import Iterable print(isinstance([4,5,6],Iterable)) #1.迭代打印list for i in [4,5,6]: print(i) #print(2.迭代打印tuple) for i in (6,7,8): print (i) '''3.迭代打印dict 使用当前的迭代可以输出key、输出value、输出key和value ''' d={'a':1,'b':2,'c':3} for value in d.values(): print(value) for key in d.keys(): print(key) for key,value in d.items(): print (key,value) for x,y in [(1,1),(2,4),(3,9)]: print(x,y) #4.迭代字符串 for i in 'ABC': print (i)
三、列表生成式
# -*- coding: utf-8 -*- #1.法一 使用列表生成式,动作、循环、条件 a=[x * x for x in range(1, 11) if x % 2 == 0] print(a) #2.法二 原本的方式 L = [ ] for x in range(1,11): if x % 2 == 0: L.append(x*x) print(L) #3.两层循环 b=[m+n for m in 'ABC' for n in 'XYZ'] print(b)
结果:
四、生成器
五、迭代器