Python 是一种简单易上手、可读性强且功能强大的编程语言,它有一些独特的技巧和写法,可以在不影响可读性的情况下大大缩短我们的 Python 代码,让它看起来更加紧凑和高级。
import platform
f"本文运行的 Python 版本:{platform.python_version()}"
'本文运行的 Python 版本:3.9.19'
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")]
['United States', 'United Kingdom']
与列表推导式类似,Python 中也有字典推导式,字典推导式提供了一种简短的语法,在一行代码中创建字典。基本语法如下
{key: value for key, value in iterable}
{x: x * x for x in range(10)}
{0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81}
如果我们需要合并字典,有多种方法,可以使用 update()
方法,merge()
运算符,包括上面提到的字典推导式。还一种非常简单的方法,是通过使用解包运算符 **
,我们添加 **
在每个字典前面,组合为一个新的字典来存储输出。
dict1 = {"a": 1, "b": 2}
dict2 = {"c": 3, "d": 4}
{**dict1, **dict2}
{'a': 1, 'b': 2, 'c': 3, 'd': 4}
一个非常高频的处理是对列表元素虑重。这时一个最快捷的方式是利用 Python 中的集合 set,集合是元素的无序集合。 我们只需要将列表转为集合再转回为列表即可。
nums = [1, 1, 1, 2, 2, 3, 4, 5, 6, 7, 7, 8, 9, 9, 9]
list(set(nums))
[1, 2, 3, 4, 5, 6, 7, 8, 9]
如果我们需要为多个变量赋值,我们可以一行中完成这个过程。
a, b, c = 1, "abc", True
print(a, b, c)
1 abc True
对列表元素进行筛选过滤,保留其中满足某些条件的元素结果为新的列表。这个功能的实现方法也很多,一个简单的方法是使用 filter()
函数。基本语法如下
filter(function, iterable)
我们可以借助 lambda
匿名函数来定义过滤条件,配合 filter
,可以在一行中快速完成列表元素筛选的功能。比如下例我们筛选出列表中的所有偶数:
lst = [10, 11, 12, 13, 14, 15]
list(filter(lambda x: x % 2 == 0, lst))
[10, 12, 14]
依据 key 对字典进行排序,我们可以借助 sorted
函数,比如
d = {"Z": 9.99, "Y": 9.99, "X": 9.99}
sorted(d.items())
[('X', 9.99), ('Y', 9.99), ('Z', 9.99)]
依据 value 对字典进行排序,我们依然可以借助 sorted 函数,比如
d = {"USA": 329.5, "Brazil": 212.6, "UK": 67.2}
sorted(d.items(), key=lambda x: x[1])
[('UK', 67.2), ('Brazil', 212.6), ('USA', 329.5)]