一: 切片:切片主要针对List、Tuple以及字符串操作。
例子:
TestList= list(range(100))
print(TestList[:10])#获取前10个
print(TestList[-10:])#获取后10个
print(TestList[10:20])#获取10-20之间的数,不包括20
print(TestList[10:30:5])#获取10-30之间,每隔5个的数:[10, 15, 20, 25]
Testtuple = (range(100))
print(Testtuple.__len__())
print(Testtuple[:10])#获取前10个返回的还是元祖,其他操作都是一样的
print("nishizhunishuzhuhuhuuh"[:10])#获取前10个返回的还是字符串,其他操作都是一样的
二: 列表生成式:Python内置的非常简单却强大的可以用来创建list的生成式。
2.1:生成List (1+1,2+2,3+3,,,)正常可以使用循环操作,但是如果使用列表生成式的话,就很简单。
# 正常的循环生成方式如下:
TestList= list()
foriinrange(1,20):
TestList.append(i+i)
print(TestList)
#上述循环语句完全可以使用下述一条语句实现
SimpleTestList= [j+jforjinrange(1,20)]
print(SimpleTestList)
2.2:使用循环语句之后还可以使用判断语句
# 注意for循环之后的if语句
SimpleTestList= [j+jforjinrange(1,20)ifj %2==]
print(SimpleTestList)
2.3:还可以使用多层循环,一般三层以上很少用。
SimpleTestList= [m+n+jformin"AB"fornin"12"forjin"ab"]
print(SimpleTestList)
'''
Output:
['A1a', 'A1b', 'A2a', 'A2b', 'B1a', 'B1b', 'B2a', 'B2b']
'''
三:生成器:从语法上讲,生成器是一个带yield语句的函数。一个函数或者子程序只返回一次,但一个生成器能暂停执行并返回一个中间的结果-----那就是yield语句的功能,返回一个值给调用者并暂停执行。当生成器的next()方法被调用的时候,它会准确地从离开的地方继续。
在Python中,可以简单地把列表生成式改成generator,也可以通过函数实现复杂逻辑的generator
if__name__ =="__main__":
'''
下述语句:
NormalList是一个简单的list
GeneratorList是一个generator,将[]更换成()就可以生成一个generator
输出结果:
Type of NormalList:
Type of GeneratorList:
1
'''
NormalList = [x * xforxinrange(10)]
GeneratorList = (x * xforxinrange(10))
print("Type of NormalList:", type(NormalList))
print("Type of GeneratorList:", type(GeneratorList))
print(next(GeneratorList))
print(next(GeneratorList))
'''
下述语句:
otherFunc是一个简单的函数
SimpleFunc是一个generator函数
输出结果:
Type of MyObj:
this is normal function
Type of otherFunc:
this is generator function
1
2 next
'''
defSimpleFunc():
print("this is generator function")
yield1
yield"2 next"
yield"3sss"
defotherFunc():
print("this is normal function")
MyObj = SimpleFunc()
print("Type of MyObj:", type(MyObj))
print("Type of otherFunc:", type(otherFunc()))
print(next(MyObj))#对于这里,输出了函数SimpleFunc的打印信息,然后输出1
print(next(MyObj))#对于这里,就不输出打印信息了,直接输出‘2 next’,所以参考定义《yield能暂停执行并返回一个中间的结果,当生成器的next()方法被调用的时候,它会准确地从离开的地方继续》
领取专属 10元无门槛券
私享最新 技术干货