三元表达式
条件成立时的返回值 if 条件 else 条件不成立时的返回值
def max2(x,y): if x > y: return x else: return yprint(max2(10,20)) x=10y=20res=x if x > y else yprint(res)
列表生成式
#输出1~10中每个数字的平方 l=[item**2 for item in range(1,11)]print(l)
names=['alex','wxx','lxx']为列表中每个人名加上SBl=[]for name in names: l.append(name + 'SB')names=l print(l) 列表生成式写法names=[name+'SB' for name in names]print(names)
names=['alex','wxx','egon','lxx','zhangmingyan'] 为列表中除了egon外的每个人名加上SBl=[]for name in names: if name != 'egon': l.append(name + 'SB')names=l 列表生成式写法names=[name+'SB' for name in names if name != 'egon']print(names)
把所有元素大写 names=['egon','alex_sb','wupeiqi','yuanhao']names=[name.upper() for name in names]print(names) 把不以sb结尾的元素的长度以列表输出names=['egon','alex_sb','wupeiqi','yuanhao']nums=[len(name) for name in names if not name.endswith('sb')]print(nums)
字典生成式
s1='hello'l1=[1,2,3,4,5]res=zip(s1,l1)print(res) #输出的是内存地址print(list(res)) #打印结果:[('h', 1), ('e', 2), ('l', 3), ('l', 4), ('o', 5)]
keys=['name','age','sex']values=['egon',18,'male']res=zip(keys,values)print(list(res)) #[('name', 'egon'), ('age', 18), ('sex', 'male')]print(list(res))d={}for k,v in zip(keys,values): d[k]=vprint(d) #{'name': 'egon', 'age': 18, 'sex': 'male'}
字典生成器写法keys=['name','age','sex']values=['egon',18,'male']d={k:v for k,v in zip(keys,values)}print(d) #{'name': 'egon', 'age': 18, 'sex': 'male'}
info={ 'name': 'egon', 'age': 18, 'sex': 'male'}keys=info.keys()# print(keys)iter_keys=keys.__iter__()values=info.values()# print(values)d={k:v for k,v in zip(keys,values)}print(d)
生成器表达式
with open('a.txt',encoding='utf-8') as f: nums=(len(line) for line in f) print(max(nums)) #统计a.txt中最长一行的长度
l=['egg%s' %i for i in range(100)]print(l) #输出'egg0'到'egg99'
g=('egg%s' %i for i in range(1000000000000))# print(g)print(next(g))print(next(g)) #next一个出一个