列表推导式是一种在 Python 中创建列表的简洁而富有表现力的方法。
你可以使用一行代码来生成列表,而不是使用传统的循环。
例如:
# Traditional approach squared_numbers=[]fornuminrange(1,6):squared_numbers.append(num**2)# Using list comprehension squared_numbers=[num**2fornuminrange(1,6)]
迭代序列时,同时拥有索引和值通常很有用。enumerate 函数简化了这个过程。
fruits=['apple','banana','orange']# Without enumerateforiinrange(len(fruits)):print(i,fruits[i])# With enumerateforindex,valueinenumerate(fruits):print(index,value)
zip 函数允许你同时迭代多个可迭代对象,创建相应元素对。
names=['Alice','Bob','Charlie']ages=[25,30,22]forname,ageinzip(names,ages):print(name,age)
with 语句被用来包裹代码块的执行,以便于对资源进行管理,特别是那些需要显式地获取和释放的资源,比如文件操作、线程锁、数据库连接等。使用 with 语句可以使代码更加简洁,同时自动处理资源的清理工作,即使在代码块中发生异常也能保证资源正确地释放。
withopen('example.txt','r')asfile:content=file.read()# Workwiththe file content # File is automatically closed outside the"with"block
集合是唯一元素的无序集合,这使得它们对于从列表中删除重复项等任务非常有用。
numbers=[1,2,2,3,4,4,5]unique_numbers=set(numbers)print(unique_numbers)
itertools 模块提供了一组快速、节省内存的工具来使用迭代器。例如,itertools.product 生成输入可迭代对象的笛卡尔积。
importitertools colors=['red','blue']sizes=['small','large']combinations=list(itertools.product(colors,sizes))print(combinations)
装饰器允许你修改或扩展函数或方法的行为。它们提高代码的可重用性和可维护性。
deflogger(func):defwrapper(*args,**kwargs):print(f'Calling function {func.__name__}')result=func(*args,**kwargs)print(f'Function {func.__name__} completed')returnresultreturnwrapper @logger defadd(a,b):returna+b result=add(3,5)
Python 的 collections 模块提供了超出内置类型的专门数据结构。
例如,Counter 帮助计算集合中元素的出现次数。
from collectionsimportCounter words=['apple','banana','apple','orange','banana','apple']word_count=Counter(words)print(word_count)
Python 3.6 中引入的 f-string 提供了一种简洁易读的字符串格式设置方式。
name='Alice'age=30print(f'{name} is {age} years old.')
虚拟环境有助于隔离项目依赖关系,防止不同项目之间发生冲突。
# Create a virtual environment python-m venv myenv # Activate the virtual environment # Install dependencies within the virtual environment pip install package_name # Deactivate the virtual environment deactivate