3.迭代
names = ['赵梦冰','张荣亮','侯富君','王颜丽','焦新瑞']
'''
#循环、遍历、迭代iteration
#可迭代对象:列表 元组 字典
for name in names:
print(name)
'''
#遍历key
name_scores= {'赵梦冰':88,'张荣亮':99,'侯富君':77,'王颜丽':89,'焦新瑞':93}
for key in name_scores:
print(key,name_scores[key])
#遍历value
for value in name_scores.values():
print(value)
#同时遍历key和value
for key,value in name_scores.items():
print(key,value)
#遍历字符串
i=0 #循环控制变量
for char,i in enumerate('abcdef'):
print(i,char)
'''如何判断一个对象是可迭代对象'''
from collections.abc import Iterable
#isinstance(obj,type)判断对象obj是否是type类型,是则返回True,否则返回False
print(isinstance(1,int))
print(isinstance('1',int))
print(isinstance(names,Iterable))
#方法二
nums=[]
for x in range(1,10):
nums.append(x*x)
print(nums)
#方法三 列表生成式
m=[x*x for x in range(1,10)]
print(m)
#练习
l=[fraction(1,x) for x in range(1,10)]
print(l)
#列表生成式中添加条件判断
m=[x*x for x in range(1,10) if x%2==0]
print(m)
#列表生成式中使用多重循环
p=[x+y for x in 'ABC' for y in 'XYZ']
#用列表生成式生成元组
q=tuple([x*x for x in range(1,10)])
print(q)
name_scores= {'赵梦冰':88,'张荣亮':99,'侯富君':77,'王颜丽':89,'焦新瑞':93}
d={k:v for k,v in name_scores.items() if v<90}
print(d)
# 实现一个trim()函数,利用切片去除字符串前后的空格
# ' tom cruse '
# 循环方式
def trim(s):
l=len(s)
if l>0:
for i in range(l):
if s[i]!=' ':
break
j=l-1
while s[j]==' 'and j>=i:
j-=1
s=s[i:j+1]
return s
print(trim(' dvb '))
# 将下面列表中的所有字符变为小写:(列表生成式)
# ['Tom','MIKE','VM','Python']
# 'Tom'.lower()
h=['Tom','MIKE','VM','Python']
l = [s.lower() for s in h if isinstance(s,str)]
print(l)
# 使用迭代查找一个列表中的最大值和最小值,返回一个tuple
def s(list):
if list!=[]:
(max,min)=(list[0],list[0])
for x in list:
if x<min:
min=x
if x>max:
max=x
return max,min
print(s((20,36,68,21,59,35)))
二、遇到的问题:
元组生成式和字典生成式
三、处理方式(网上查找):
t=tuple([x*x for x in range(1,10)])
name_scores= {'赵梦冰':88,'张荣亮':99,'侯富君':77,'王颜丽':89,'焦新瑞':93}
d={k:v for k,v in name_scores.items() if v<90}