| 副标题[/!--empirenews.page--] 本篇文章将详细介绍解析式的基本要素及其各种形式。 
 Python中的解析式 解析式是允许在其他序列中构建序列的结构。Python 2.0介绍了列表解析式的概念,Python 3.0中进一步介绍了字典和集合解析式。 
 Pyhon中的解析式类型 为什么解析式如此强大?本文将通过一个例子试着理解这一点。大家都知道Python提供了各种表达列表的方法。例如: 可以明确地将整件事写成: squares = [0, 1, 4, 9, 25] 
 或者,编写for循环以创建列表: squares = [] for num in range(6):     squares.append(num*num) 
 创建列表的另一种方法是使用单行代码。 squares = [num*num for num in range(6)] 
 上面的这个单行叫做列表解析式,是创建列表的便捷方式。它不再依赖循环并精简了代码。下一部分将深入探讨列表的概念以及Python  3中提供的其他类型的解析式。 列表解析式 列表解析式是一种以简洁的方式在Python中定义和创建列表的方法。大多数情况下,列表解析式可以仅在一行代码中创建列表,无需担心初始化列表或设置循环。 列表解析式包括以下几个部分: 
 列表解析式的各个部分 比如说,需要找到前五个偶数的平方。如上一节所示,有两种方法可以做到这一点:使用显式的for循环或使用列表解析式。两种方法都试试看吧。 使用循环: even_squares = [] >>> for num in range(11): ...    if num%2 == 0: ...        even_squares.append(num * num)>>> even_squares [0, 4, 16, 36, 64, 100] 
 使用列表解析式: even_squares = [num * num for num in range(11) if num%2 == 0] even_squares [0, 4, 16, 36, 64, 100] 
 如果仔细观察,可以看出只需重新排列For循环就可以创建列表解析式。 
 列表解析式是Python中对集合应用的一种符号表示方法,就好像数学中用到的集合表示方法。 
 与数学中集合的相似性 一起实践尝试并看一些在列表解析式帮助下创建列表的例子吧。 创造毕达哥拉斯三元数组 毕达哥拉斯三元数组由三个正整数a,b和c组成,而且a²+b²=c²。通常这样的三元数组写成(a,b,c)的形式,例如(3,4,5)。 [(a,b,c) for a in range(1,30) for b in range(1,30) for c in range(1,30)if a**2 + b**2 == c**2][(3, 4, 5), (4, 3, 5), (5, 12, 13), (6, 8, 10), (7, 24, 25), (8, 6, 10), (8, 15, 17), (9, 12, 15), (10, 24, 26), (12, 5, 13), (12, 9, 15), (12, 16, 20), (15, 8, 17), (15, 20, 25),(16, 12, 20), (20, 15, 25),(20, 21, 29), (21, 20, 29), (24, 7, 25), (24, 10, 26)] 
 带字符串的列表解析式 将字符串中的小写字母转换为大写字母。 colors = ["pink", "white", "blue", "black", purple"] [color.upper() for color in colors] ['RED', 'GREEN', 'BLUE', 'PURPLE'] 
 交换给定列表中的名和姓。 presidents_usa = ["George Washington", "John Adams","Thomas Jefferson","James Madison","James Monroe","John Adams","Andrew Jackson"]split_names = [name.split(" ") for name in presidents_usa] swapped_list = [split_name[1] + " " + split_name[0] for split_name in split_names]swapped_list['Washington George', 'Adams John', 'Jefferson Thomas', 'Madison James', 'Monroe James', 'Adams John', 'Jackson Andrew'] 
 含有元组的列表解析式 (编辑:广西网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |