python生成有条件的列表_python复杂列表生成式教程
本文主要講解python列表生成式的實(shí)際運(yùn)用實(shí)例!希望對(duì)初學(xué)者有幫助!
1、復(fù)雜的列表生成式HTML表格:
注:字符串可以通過(guò)%進(jìn)行格式,用指定的參數(shù)化代替%s。字符串的join()方法可以把一list拼接成一個(gè)字符串。
把沒(méi)有幾個(gè)的分?jǐn)?shù)標(biāo)記為紅色:
d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 }
def generate_tr(name, score):
if score < 60
return '
%s%s' % (name, score)return '
%s%s' % (name, score)tds = [generate_tr(name, score) for name, score in d.iteritems()]
print '
print '
NameScore'print '\n'.join(tds)
print '
'2、條件過(guò)濾
列表生成式的for循環(huán)后面還可以加上if判斷:
把list中的所有字符串變成大寫后返回,非字符串元素將被忽略
提示:
1、isintance(x,str)可以判斷變量x是否是字符串
2、字符串的upper()方法可以返回大寫字母
def toUppers(L):
return [x.upper() for x in L if isinstance(x,str)]
print toUppers(['Hello', 'world', 101])
3、多層表達(dá)式
for循環(huán)可以嵌套,因此列表生成式中,可以可以用多層for循環(huán)來(lái)生成列表
如:對(duì)字符串‘ABC’和‘123’,可以使用兩層村換,生成全排列
[n+m for m in 'ABC' for n in '123']
練習(xí):利用三層嵌套for循環(huán),找出對(duì)稱的3位數(shù) 如121
print [100*m+10*n+m for m in range(1,10) for n in range (0,10)]
L=[]
for x in range(1,10):
for y in range(10):
for z in range(1,10):
if x==z :
L.append(100*x+10*y+z)
print L
課程推薦:
Python在線視頻教程
總結(jié)
以上是生活随笔為你收集整理的python生成有条件的列表_python复杂列表生成式教程的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 求一个超好听的男孩名字!
- 下一篇: mysql h 127.0.0.1_My