Python 是一种简单易上手、可读性强且功能强大的编程语言,它有一些独特的技巧和写法,可以在不影响可读性的情况下大大缩短我们的 Python 代码,让它看起来更加紧凑和高级。
import platform
f"本文运行的 Python 版本:{platform.python_version()}"
三元运算
if-else
语句是我们在 Python 中学习的基础逻辑判断语法之一。 我们通常会以分支的形式来书写这个语句,但 Python 其实能支持 if 和 else 语句在同一行,简单快捷完成判断。
def is_adult(age):
return "你是成年人" if age >= 18 else "你是未成年人"
is_adult(18)
is_adult(17)
列表推导式
列表推导式是 Python 独有且非常强大的语法,它提供了一种简短的语法来根据现有列表的值创建列表。 相比函数和循环更紧凑,甚至还可以加入条件判断。基本语法如下
[expression for item in list]
countries = ["united states", "brazil", "united kingdom", "japan"]
[country.title() for country in countries if country.startswith("u")]
字典推导式
与列表推导式类似,Python 中也有字典推导式,字典推导式提供了一种简短的语法,在一行代码中创建字典。基本语法如下
{key: value for key, value in iterable}
{x: x * x for x in range(10)}
合并字典
如果我们需要合并字典,有多种方法,可以使用 update()
方法,merge()
运算符,包括上面提到的字典推导式。还一种非常简单的方法,是通过使用解包运算符 **
,我们添加 **
在每个字典前面,组合为一个新的字典来存储输出。
dict1 = {"a": 1, "b": 2}
dict2 = {"c": 3, "d": 4}
{**dict1, **dict2}
删除列表重复元素
一个非常高频的处理是对列表元素虑重。这时一个最快捷的方式是利用 Python 中的集合 set,集合是元素的无序集合。 我们只需要将列表转为集合再转回为列表即可。
nums = [1, 1, 1, 2, 2, 3, 4, 5, 6, 7, 7, 8, 9, 9, 9]
list(set(nums))
单行多变量赋值
如果我们需要为多个变量赋值,我们可以一行中完成这个过程。
a, b, c = 1, "abc", True
print(a, b, c)
列表元素筛选
对列表元素进行筛选过滤,保留其中满足某些条件的元素结果为新的列表。这个功能的实现方法也很多,一个简单的方法是使用 filter()
函数。基本语法如下
filter(function, iterable)
我们可以借助 lambda
匿名函数来定义过滤条件,配合 filter
,可以在一行中快速完成列表元素筛选的功能。比如下例我们筛选出列表中的所有偶数:
lst = [10, 11, 12, 13, 14, 15]
list(filter(lambda x: x % 2 == 0, lst))
字典排序:按照 key
依据 key 对字典进行排序,我们可以借助 sorted
函数,比如
d = {"Z": 9.99, "Y": 9.99, "X": 9.99}
sorted(d.items())
字典排序:按照 value
依据 value 对字典进行排序,我们依然可以借助 sorted 函数,比如
d = {"USA": 329.5, "Brazil": 212.6, "UK": 67.2}
sorted(d.items(), key=lambda x: x[1])