• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

python复杂列表生成式教程

python 搞代码 4年前 (2022-01-09) 19次浏览 已收录 0个评论

本文主要讲解python列表生成式的实际运用实例!希望对初学者有帮助!

1、复杂的列表生成式HTML表格:

注:字符串可以通过%进行格式,用指定的参数化代替%s。字符串的join()方法可以把一list拼接成一个字符串。

把没有几个的分数标记为红色:

d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 }
def generate_tr(name, score):
if score < 60
return '<tr><td>%s</td><td style="color:red">%s</td></tr>' % (name, score)
return '&lt

本文来源gao!%daima.com搞$代*!码$网9

;tr><td>%s</td><td>%s</td></tr>' % (name, score)
tds = [generate_tr(name, score) for name, score in d.iteritems()]
print '<table border="1">'
print '<tr><th>Name</th><th>Score</th><tr>'
print '\n'.join(tds)
print '</table>'

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(['Hello', 'world', 101])

3、多层表达式

for循环可以嵌套,因此列表生成式中,可以可以用多层for循环来生成列表

如:对字符串‘ABC’和‘123’,可以使用两层村换,生成全排列

[n+m for m in 'ABC' for n in '123']

练习:利用三层嵌套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复杂列表生成式教程的详细内容,更多请关注搞代码gaodaima其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:python复杂列表生成式教程

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址