`

Python 复杂表达式

阅读更多

复杂表达式

使用for循环的迭代不仅可以迭代普通的list,还可以迭代dict。

假设有如下的dict:

d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 }

完全可以通过一个复杂的列表生成式把它变成一个 HTML 表格:

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

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

把打印出来的结果保存为一个html文件,就可以在浏览器中看到效果了:

<table border="1">
<tr><th>Name</th><th>Score</th><tr>
<tr><td>Lisa</td><td>85</td></tr>
<tr><td>Adam</td><td>95</td></tr>
<tr><td>Bart</td><td>59</td></tr>
</table>

任务

在生成的表格中,对于没有及格的同学,请把分数标记为红色。

提示:红色可以用 <td style="color:red"> 实现。

?不会了怎么办

如果我们用一个函数来替换字符串的格式化代码,可以得到更清晰的代码:

def generate_tr(name, score):
    return '<tr><td>%s</td><td>%s</td></tr>' % (name, score)
tds = [generate_tr(name, score) for name, score in d.iteritems()]

这样,只需要修改 generate_tr() 函数,必要的时候把score标红。

参考代码:

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 '<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>'
分享到:
评论

相关推荐

    Python-Pyregex是一个开源在线的Python正则表达式编辑器测试器

    在使用Pyregex时,用户可以通过这些元字符和组合,创建出复杂的正则表达式模式,进行各种复杂的文本匹配任务。 Pyregex-master这个压缩包可能包含了Pyregex项目的源代码,包括HTML、JavaScript和CSS文件,以及可能...

    Python正则表达式基础

    Python正则表达式基础是学习如何在Python中应用正则表达式的入门指南。正则表达式,或称为REs、regexes、regexpatterns,是能够嵌入到Python中的一个精细、高度专业化的程序语言。通过re模块,程序员得以使用这一...

    python正则表达式_深入浅出

    Python正则表达式是Python编程语言中用于处理文本的强大工具,它允许程序员高效地搜索、匹配、替换符合特定模式的字符串。深入理解Python正则表达式对于任何希望在数据处理、文本分析或网络爬虫等领域工作的开发者来...

    Python正则表达式操作指南.pdf

    - 在复杂的正则表达式中,注意避免过于贪婪的匹配以及不必要的重复计算。 - 对于性能敏感的应用,可以考虑预编译正则表达式。 - **调试与测试**: - 使用Python自带的`re`模块文档或在线工具进行正则表达式的...

    [小小明]Python正则表达式全套笔记v0.3(1.8万字干货)

    小小明是数据处理专家,擅长解决各种复杂数据处理问题,并且提供了个人笔记,涵盖了正则表达式的各个方面。 1.2 阅读建议 本文档适合对正则有一定基础了解的朋友系统性学习。初学者建议在学习本文档之前,先学习...

    Python正则表达式七种兵器

    Python正则表达式是Python编程语言中的一个强大工具,它用于处理字符串,通过模式匹配来查找、替换或提取文本信息。在Python中,正则表达式主要由`re`模块提供支持。本教程将深入探讨Python正则表达式的七种核心功能...

    python 正则表达式 re 学习.pdf

    然而,使用正则表达式时也需要小心,因为复杂的表达式可能难以理解和维护,而且正则表达式可能消耗大量计算资源,特别是当处理大量数据或复杂表达式时。在实际开发中,合理利用正则表达式,可以大大提升文本处理的...

    python正则表达式详解笔记,python正则表达式教学.doc

    ### Python正则表达式详解 #### 一、正则表达式概述 正则表达式(Regular Expression)是一种在计算机科学领域广泛使用的模式匹配工具。它主要用于处理文本数据,包括搜索、替换以及提取文本中的特定模式。许多...

    python 正则表达式

    正则表达式中有许多特殊的元字符,用于构建更复杂的模式: - `|`:表示或运算,即A|B表示匹配A或B。 - `[ ]`:表示字符集,用于匹配括号内的任意一个字符。 - `[^ ]`:表示反向字符集,用于匹配不在括号内的字符。 -...

    Python正则表达式视频

    8. **正则表达式优化**:讨论如何编写更高效、更具可读性的正则表达式,避免过度复杂的匹配规则。 9. **实战应用**:结合Python爬虫,展示如何使用正则表达式从网页中抓取数据,如新闻标题、评论内容等。 通过本...

    Shell与Python正则表达式参考

    在Python中,正则表达式提供了更多高级功能,如非贪婪匹配、分组、后向引用等,可以进行更复杂的模式匹配和字符串操作。Python的`re`模块提供了`search()`, `match()`, `findall()`, `sub()`等方法来执行正则表达式...

    Python 正则表达式

    ### Python正则表达式详解 #### 一、正则表达式概述 正则表达式(Regular Expressions)是一种强大的文本处理工具,它...随着对正则表达式的深入了解,开发者可以利用更多的高级功能来解决更为复杂的文本处理问题。

    Python正则表达式操作指南.doc

    Python正则表达式不仅用于简单的文本匹配,还可以用于复杂的文本处理任务,如提取邮箱地址、电话号码等。结合Python的其他功能,如文件操作、网络请求等,正则表达式可以成为强大的数据处理工具。对于初学者,理解并...

    Python正则表达式操作指南

    Python正则表达式操作指南是一份详细的教学文档,旨在帮助用户了解如何在Python中使用`re`模块进行正则表达式操作。这份指南相较于Python库参考手册的相关章节,更加注重易懂性和逐步引导。文档作者是A.M. Kuchling...

    python正则表达式匹配不包含某几个字符的字符串方法

    通过上述内容,我们可以看到,对于一些复杂的文本匹配需求,通过巧妙运用正则表达式的各种构造,我们可以有效地解决问题。掌握了这些知识,就能在处理文本数据时更加游刃有余。希望这些知识点能够帮助到大家,如果有...

    python 计算器 支持复杂算数表达式

    Python计算器是一种基于编程语言实现的计算工具,它可以处理不仅仅是简单的加减乘除,还支持复杂的算术表达式。在这个项目中,我们使用Python语言来构建一个递归下降解析器,这是一种解析器设计技术,用于解释输入的...

    Python-通过200多个示例逐步学习Python正则表达式从初级到高级

    高级阶段,你将接触到更复杂的正则表达式技术,比如使用`|`进行选择,`\b`用于匹配单词边界,`^`和`$`分别用于匹配字符串的开始和结束。你还会学习非贪婪匹配,通过在量词后面加上一个问号(`*?`, `+?`, `??`, `{n,}...

    Python正则表达式常用函数总结

    通过不断调整正则表达式中的通配符和量词,可以实现复杂且精确的文本匹配。在使用正则表达式时,确保模式的字符数量不超过字符串的字符数量,否则可能会找不到匹配项。例如,`re.match(r'.*...', '..')`不会匹配,...

Global site tag (gtag.js) - Google Analytics