作者:小dej_531 | 来源:互联网 | 2017-05-14 02:44
本文主要讲解python列表生成式的实际运用实例!希望对初学者有帮助!
1、复杂的列表生成式HTML表格:
注:字符串可以通过%进行格式,用指定的参数化代替%s。字符串的join()方法可以把一list拼接成一个字符串。
把没有几个的分数标记为红色:
d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 }
def generate_tr(name, score):
if score <60
return &#39;
%s | %s |
&#39; % (name, score)
return &#39;
%s | %s |
&#39; % (name, score)
tds = [generate_tr(name, score) for name, score in d.iteritems()]
print &#39;
&#39;
print &#39;Name | Score |
---|
&#39;
print &#39;\n&#39;.join(tds)
print &#39;
&#39;
2、条件过滤
列表生成式的for循环后面还可以加上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([&#39;Hello&#39;, &#39;world&#39;, 101])
3、多层表达式
for循环可以嵌套,因此列表生成式中,可以可以用多层for循环来生成列表
如:对字符串‘ABC’和‘123’,可以使用两层村换,生成全排列
[n+m for m in &#39;ABC&#39; for n in &#39;123&#39;]
练习:利用三层嵌套for循环,找出对称的3位数 如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在线视频教程
以上就是python复杂列表生成式教程的详细内容,更多请关注 第一PHP社区 其它相关文章!