s ='51 5000 10000'
li =[]for item in s.split():
li.append(int(item))print(li)
k,a,b = li
print(k,a,b)
#[1**1 2**2 .. 9**9] 求1到9的乘方
li =[]for i inrange(1,10):
li.append(i ** i)print(li)
2.列表生成式的便捷写法(1条命令搞定)
s ='51 5000 10000'
li =[int(item)for item in s.split()]##与上一串命令效果相同,但是更加的方便print(li)
#[1**1 2**2 .. 9**9] 求1到9中偶数的乘方print([i ** i for i inrange(1,10)if i %2==0])##在列表生成式中加入if条件判断
3.列表生成式变形
li =[[1,2,3],[4,5,6],[7,8,9]]#普通遍历性
resultli =[]for item1 in li:for item2 in item1:
resultli.append(item2)print(resultli)
li =[[1,2,3],[4,5,6],[7,8,9]]print([item2 for item1 in li for item2 in item1])##列表生成式直接遍历
二、字典生成式
1.普通方法
#假设有20个学生,名字为westosx,学生分数在60-100之间,#筛选出成绩在90分以上的学生import random
stuInfo ={}for i inrange(20):
name ='westos'+str(i)
score = random.randint(60,100)
stuInfo[name]= score
print(stuInfo)##20个学生的成绩
highscore ={}for name,score in stuInfo.items():if score >90:
highscore[name]= score
print(highscore)##成绩在90分以上的学生及成绩
2.字典生成式方法
#假设有20个学生,名字为westosx,学生分数在60-100之间,#筛选出成绩在90分以上的学生import random
stuInfo ={}for i inrange(20):##生成20个学生的成绩
name ='westos'+str(i)
score = random.randint(60,100)
stuInfo[name]= score
print({name: score for name,score in stuInfo.items()if score >90})##直接筛选出90分以上的成绩和学生