阅读前提示,如果对你有帮助,请给在下点个赞或加个关注,收藏也行 \(—)/
循环,for与while,还记得之前说过的迭代吗,这里将会正式介绍
1.while
a=0
b=[]
while a<100 :
# print(a)
b.append(a)
a+=1
#这样我们能输出0-99一共100个数字,试想一下如果不用循环,这将是多么困难
#可以看出while的判断条件就是后面的运算符结果,这里先做个介绍,后面会为你加深印象
2.for
#看到上面的b了吧,我顺便将100个数字存入了列表b中
#接下来我们给每一个元素都加1
for numB in b :
b[numB]+=1
print(b[0])#1 原先的b[0]是0
#这里你们可以试试字符串
#来讲讲迭代是什么,基本上,可迭代的对象是可使用for循环进行遍历的对象
#这就是迭代的定义,上面我们对b中的元素进行的操作就可被称作迭代
for a1 in list(range(0,10)) :
print(a1)#输出0到9
#range(起始数字,终止数字,步长),如果用list化后会变为一个数字组成的列表
#起始数字默认是0,可以不用输入,步长默认是1,也不用输入,但可以根据需要修改
#有一点要注意,修改迭代时的item不能改变items,一定要想办法直接修改items
3.迭代字典
c={}
for numC in b :
c.setdefault("c"+str(numC),numC)
# print(c)#这里我们就得到了一个c1到c100为键,1-100为值得字典
for cKey,cVal in c.items() :#键,值 in 字典.items()可以获取到字典的键和值
# print(cKey,"value is",cVal)#这样我们就实现了对字典c的迭代
pass
#这里就说明一下,pass是用来充当占位符的,你可以在未写完代码的地方放上pass
#因为像循环这种语句,如果没有执行任何操作是不行的
4.并行迭代
d={}
dName=["Bob","Harry","Lily"]
dNum=[33,19,80]
for dKey in range(len(dName)) :
d.setdefault(dName[dKey],dNum[dKey])
print(d)#{'Bob': 33, 'Harry': 19, 'Lily': 80}
#一个很有用的并行迭代工具是内置函数zip,它会将两个序列像上面那样组合起来
dZip=list(zip(dName,dNum))
for name,num in dZip :
print(name,"number is",num)
# Bob number is 33
# Harry number is 19
# Lily number is 80
5.迭代时的索引
#在一些情况下,你需要在迭代对象序列的同时获取当前对象的索引
#首先最好不要用items.index(item)这种方式
#一种内置函数是很好的解决办法
index=0
eStrs=["This is XXX,","XXX is YYY"]
for index,eStr in enumerate(eStrs) :#迭代索引-值对
if "XXX" in eStr :
eStrs[index]="[XXX]"
print(eStrs)#['[XXX]', '[XXX]'] 这里将所有包含XXX的字符串都换成了[XXX]
6.反向迭代
#与列表中的sort和reverse一样,都是对序列进行顺序上的重新排列
print(sorted([4,3,1,6,6,7,1]),list(reversed([4,3,1,6,6,7,1])))#[1, 1, 3, 4, 6, 6, 7] [1, 7, 6, 6, 1, 3, 4]
print(sorted("Hello World!"),list(reversed("Hello World!")))
#[' ', '!', 'H', 'W', 'd', 'e', 'l', 'l', 'l', 'o', 'o', 'r'] ['!', 'd', 'l', 'r', 'o', 'W', ' ', 'o', 'l', 'l', 'e', 'H']