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分以上的成績和學生