可读性的惊人 Python/ target=_blank class=infotextkey>Python 代码片段
Python 是一种通用编程语言,可用于构建任何规模的项目,并为开发人员提供编写逻辑清晰代码的条件——即使是大型项目。
Python 的设计理念通过强制使用缩进来显式定义代码块来促进代码的可读性。但是,仅仅拥有良好缩进的代码并不一定意味着您的代码也清晰且编写良好。
“可读性很重要。” — Python之禅
与大多数其他通用编程语言相比,Python 的最大优势之一是它不那么冗长。不过,为了简洁而牺牲代码的可读性绝不是一个好主意。在许多情况下,单线可能弊大于利。试图通过将(复杂的)语句放在一起来减少代码行数实际上会破坏代码的可读性。
话虽如此,单行代码还可以帮助您保持代码整洁并使其看起来更加 Pythonic。在本文中,我们将探讨一些这样的案例,并了解如何在常见的编程结构中使用有用的单行代码。
1.合并字典
从 Python 3.9 开始,您只需使用|运算符即可合并字典:
dict1 = {'a': 1, 'b': 2}dict2 = {'b': 3, 'c': 4, 'd': 5}dict1 | dict2
按备用键排序
有时,我们需要通过备用键对元素列表进行排序
sorted([-5, -1, 2, 3, 4], key=lambda x: abs(x))
展开列表中的列表
当我们需要展开列表中的列表时。列表迭代应该可以解决问题:
nested_lists = [[1, 2], [3, 4, 5], [6]][item for inner_list in nested_lists for item in inner_list]
交换变量
在大多数编程语言中,为了交换两个变量的值,我们需要引入第三个临时变量。在 Python 中,这可以通过单行来实现
a = 10b = 20a, b = b, aprint(a,b)
为多个变量赋值
a, b, c = 10, False, 'Hello World'
打开文件
与文件等资源进行交互是日常编程中的常见任务。一个典型的用例是当我们需要读取文件的内容时。您可以使用上下文管理器,而不是花费时间和代码行来与资源交互并捕获错误,如下所示。
Python 中的上下文管理器是一个定义运行时上下文并在进入上下文之前和退出上下文之后实现特定功能的对象。
该with语句将打开文件并在运行时上下文终止后(或出现问题时)自动关闭它:
with open('file.txt','r') as f:content = f.readlines()
多格式输出字符串
>>> n_processes = 1>>> f"{n_processes} process{' is' if n_processes == 1 else 'es are'} running"'1 process is running'>>> n_processes = 2>>> f"{ n_processes} process{' is' if n_processes == 1 else 'es are'} running"
Lambda 函数
Lambda 函数是单表达式匿名函数。它们可以帮助您编写简洁的内联函数
>>> circle_area = lambda r: math.pi * (r ** 2)>>> circle_area(10)
map函数
我们经常需要对一组元素应用一个函数,这正是这样map()函数做的事情
>>> nums = [1, 2, 3, 4, 5]>>> nums_squared = list(map(lambda n: n**2, nums))>>> nums_squared[1, 4, 9, 16, 25 ]
计算累计和
itertools.accumulate()如果需要计算数值的累积/运行总和,这是一个完美的函数。
>>> import itertools>>> list(itertools.accumulate([1, 2, 3, 4, 5]))[1, 3, 6, 10, 15]
列表、集合和字典推导
列表、集合或字典推导可以帮助您编写更清晰、更 Pythonic 的代码。可以仅在一行中使用推导式,而不是使用传统的循环。
例如,为了过滤列表,可以使用以下约定:
>>> numbers = [1, 2, 3, 4, 5]>>> [num for num in numbers if num > 3][4, 5]
感谢阅读,hAppy code!