要知道这种编码形式可是合法的:
你还可以链接两个以上的比较:
04 多重赋值你可以使用元组解包在一条语句中分配多个变量:
请注意,第一条语句中的2,4,8等同于元组(2,4,8)。
05 更高级的多重赋值要知道Python能做到的远不止普通的多重赋值。赋值的左侧和右侧不需要相同数量的元素:
这种情况下,x取第一个值(2 ),因为它是第一个出现的。z是最后一个,取最后一个值(8)。y取列表中的所有其他值,因为它有星号(*y)。
06 交换变量你可以在应用多个赋值时以简洁优雅的方式交换任意两个变量,而无需引入第三个变量:
07 合并字典合并两个或更多字典的方法便是将它们放到一个新的字典中:
08 连接字符串如果需要连接多个字符串,最终在它们之间有相同的字符或字符组,可以使用str.join()方法:
09 高级遍历如果你想要遍历一个序列,并且需要序列元素和相应的索引,那么应该可以使用enumerate:
在每次遍历中,你将获得一个元组,其中包含序列的索引和相应元素。
10 反向遍历若想反向遍历序列,可以使用reversed:
11 元素聚合如果要从几个序列中聚合元素,应该使用zip:
可以通过遍历获得zip对象,或者将其转换为列表或元组。
12 矩阵转置虽然在处理矩阵时通常会使用numpy(或类似的库),但是使用zip同样可以实现矩阵的转置:
13 唯一值如果元素的顺序不重要,想从列表中删除重复项,可以通过将其转换为集合来获得唯一值:
14 序列排序默认情况下,序列按其第一个元素排序:
但是,如果要根据第二个(或其他)元素对它们进行排序,可以使用key键和适当的lambda函数作为相应的参数:
如果想获得相反的顺序,也可以使用相同的方法:
15 字典排序可以使用类似的方法对获得的字典的键值元组进行排序。items()方法:
他们是根据键排序的。如果希望根据它们的值排序,则应该指定对应于key的参数,并最终反转:
16 格式化raw字符串PEP 498和Python 3.6引入“格式化字符串”(f字符串)。你可以在这样的字符串中嵌入表达式。要知道字符串可以直接用作raw字符串和格式化字符串使用,只需加上两个前缀:fr。
17 获取当前日期和时间Python有一个内置的模块datetime,可用于处理日期和时间。一种方法便是now(),返回当前日期和时间:
18 获取最大/最小元素的索引Python并未提供直接获取列表或元组中最大或最小元素索引的函数。幸运的是,有两种优雅的方法可以做到这一点:
如果有两个或多个元素具有最大值,此方法将返回最后一个元素的索引:
如果想获取第一次出现的索引,需要稍微更改一下前面的语句:
另一种方法可能更优雅呦!
要找到最小元素的索引,请使用函数min,记得不是max。
19 获得笛卡尔积内置模块itertools提供了许多潜在有用的类。其中product函数便可用于获得笛卡尔乘积:
20 矩阵乘法操作符PEP 465和Python 3.5引入了用于矩阵乘法的专用运算符@。可以使用matmul、rmatmul和imatmul方法为你的类实现它。要知道使用该操作符进行向量或矩阵相乘非常优雅:
总结你虽然已经看到20条Python技巧和窍门,让代码变得有趣而优雅。但还有很多其他语言特征值得去探索。
Happy coding!