Python 第四天

高级特性

切片操作符

我们可以使用切片操作符获取 tuple 或者 list 中指定范围内的元素

list1 = [1,2,3,4,5,8,7,6,10]
list2 = [1:3]		#[2.3]
list3 = [:]			#[1,2,3,4,5,8,7,6,10]
list4 = [-2:-1]		#[6,10]
list5 = [0:9:2]		#[1,3,5,7,10]

迭代

1.for in 语句用于迭代
2.collections 模块的 Iterable 类型可判断对象是否可枚举

from collections import Iterable
print(isinstance('abc0',Iterable))	#true

3.enumerate 函数可以实现将 list 变为索引——元素对

for index,value in enumerate(["A","B","c"]):
	print(i,':',value,'\n')

列表生成式

列表生成式:

print([x**2 for x in range(1,11)])
#相当于
for i in range(1,11):
	print(x**2)

#双层循环
newList2 = [m + n for m in 'ABC' for n in 'XYZ']
print(newList2)

#带判断语句的列表生成式
L = ['Hello', 'World', 18, 11,'Apple', None]
L2 = [s.lower() for s in L if isinsta nce(s,str)]
print(L2)

generator 生成器

1.generator 生成器有两种生成方法 :

#第一种: 
newG = (x**2 for i in range(0,10,2))

for i  in newG:
	print(i)

#第二种
def generatorFunc(max):
	n,a,b =  0,0,1
	while(n<max):
		yield b
		a,b = b,a+b
		n = n+1
	return 'done'


newG2 = generatorFunc(10)
for i in newG2:
	print(i)


###杨辉三角的实现

def trl(max):
	n = 0
	c = [1]

	while(n < max):
		yield c
		c = [1] + [b[i] + b[i+1] for i in rage(len(b) - 1)] + [1]

All = int(input('请输入行数:'))
newG3 = trl(All)

for i in newG3:
	print(i)
posted @ 2017-08-15 20:05  我是一个毛毛虫  阅读(148)  评论(0)    收藏  举报