【编程学习】10个超级常用的Python技巧!好用到爆!

在这里插入图片描述

在学习Python编程时,掌握一些实用的小技巧可以大大提升你的编码效率和代码质量。无论你是初学者还是有一定基础的学生,了解一些实用的Python技巧都能帮助你更好地应对编程中的各种挑战。
今天,我们将探索10个高效的Python技巧,这些技巧能够让你的代码更加简洁。掌握这些技巧后,你会发现Python的世界变得更加有趣和高效。让我们一起深入这些实用的技巧,提升你的编程技能,成为更加出色的Python开发者。

1.获取列表中n个最大或最小的元素unsetunset

  • 使用heapq模块,可以帮助我们获取列表中n个最大或最小的元素。
  • 假设你有一个列表 [7, 2, 5, 8, 10, 3],你想找出其中的3个最大元素和2个最小元素。
import heapq      
numbers = [7, 2, 5, 8, 10, 3]   # 找出3个最大元素   
largest_three = heapq.nlargest(3, numbers)   
print("3个最大元素:", largest_three)  # 输出: [10, 8, 7] # 找出2个最小元素   
smallest_two = heapq.nsmallest(2, numbers)   
print("2个最小元素:", smallest_two)  # 输出: [2, 3]

2.获取列表中每个元素及其对应下标unsetunset

  • 使用enumerate函数,可以帮助我们获取列表中每个元素及其对应下标。当然,不仅仅是列表,对于其他可迭代对象时非常有用,这在需要同时访问元素和其索引的场景中尤其方便。
  • 假设我们有一个列表 fruits,我们想要打印每个水果及其对应的下标。使用 enumerate可以很简单地实现这一目标。
fruits = ['apple', 'banana', 'cherry', 'date']   # 使用 
enumerate 获取下标和元素   
for index, fruit in enumerate(fruits):       
print(f"索引: {index}, 水果: {fruit}") # 结果   
索引: 1, 水果: apple   索引: 2, 水果: banana   索引: 3, 水果: cherry   索引: 4, 水果: date   

3.简化代码(列表解析式)unsetunset

  • 列表解析式(List Comprehension)是一种简洁、高效地创建列表的方式。它允许你用一行代码生成新列表,通常比使用传统的循环更简洁和直观。
  • 生成一个包含 0 到 9 的平方的列表。
# 无条件   
squares = [x**2 for x in range(10)]   
print(squares)   # 结果   
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]      # 待条件   
even_squares = [x**2 for x in range(10) if x % 2 == 0]   
print(even_squares)   # 结果   
[0, 4, 16, 36, 64]      # 嵌套   
matrix = [[1, 2, 3],  [4, 5, 6], [7, 8, 9]   ]     
flattened = [elem for row in matrix for elem in row]   
print(flattened)   # 结果   
[1, 2, 3, 4, 5, 6, 7, 8, 9]   

4.合并字典unsetunset

  • {dictionary_one,dictionary_two}语法是 Python 3.5 引入的字典解包功能,用于合并字典。这个语法将两个字典合并为一个新字典,如果存在重复的键,后面的字典的值会覆盖前面的字典的值。
# 基本合并   
dict1 = {'a': 1, 'b': 2}   
dict2 = {'b': 3, 'c': 4}      
merged = {**dict1, **dict2}   
print(merged)   # 结果   
{'a': 1, 'b': 3, 'c': 4}      # 合并多个字典  
dict1 = {'a': 1}   
dict2 = {'b': 2}   
dict3 = {'c': 3}      
merged = {**dict1, **dict2, **dict3}   
print(merged)   # 结果   
{'a': 1, 'b': 2, 'c': 3} 

5.三元表达式unsetunset

  • 三元表达式(也称为条件表达式)是一种简洁的条件语句写法,用于在一行代码中根据条件选择一个值。Python 的三元表达式的基本语法是:
value_if_true 
if condition 
else value_if_false   <条件为真的结果> 
if <条件判断> 
else <条件为假的结果>   
  • 假如我们有这样一个if…else…条件判断语句:
age = 20   
if age >= 18:       
status = 'Adult'   
else:       
status = 'Minor'   
  • 我们可以利用三元表达式,简化我们的代码。
age = 20   
status = 'Adult' if age >= 18 else 'Minor'   

6.匿名函数unsetunset

  • 匿名函数(也称为 lambda 函数)是没有名字的函数,通常用于短小、简单的操作。Python 使用 lambda 关键字来创建匿名函数。匿名函数的语法是:
lambda arguments: expression   
它有3个常见的使用场景:

1.临时性操作:当函数只需被使用一次或几次,且功能简单时,匿名函数可以减少代码量。
2.作为函数参数:常用于高阶函数(如 map、filter、sorted)中,作为参数传入。
3.简单的回调函数:在某些需要简单回调函数的场景下,匿名函数比命名函数更为简洁。

  • 这里我们简单介绍一下它的基本用法。
# 匿名函数:计算两个数的和   
add = lambda x, y: x + y      
result = add(5, 3)   
print(result)  # 输出 
8   

7.计算元素的累积unsetunset

  • reduce 是 Python 的 functools模块中的一个函数,用于对序列的所有元素进行累积操作。它通过反复应用一个二元操作函数,将序列缩减为单个值。通常情况下,reduce`和 lambda 函数组合可以使代码更简洁,但要注意代码的可读性。
  • 假如有一个列表[1, 2, 3, 4, 5],我们想要计算列表的累积和。
from functools 
import reduce      
numbers = [1, 2, 3, 4, 5]   # 使用 
lambda 表达式定义二元操作函数:计算两个数的和   
result = reduce(lambda x, y: x + y, numbers)      
print(result)  # 输出 
15 

8.将同一操作应用到多个元素上unsetunset

  • map 是 Python 内置函数之一,用于将指定函数应用到可迭代对象的每一个元素上,并返回一个迭代器,该迭代器生成函数处理后的结果。它可以结合 lambda 表达式和多个可迭代对象来实现更复杂的处理逻辑。返回的是一个迭代器,所以通常需要使用 list 或 tuple函数将其转换为可查看的形式。
# 基本用法   
# 定义一个函数,将一个数字平方   
def square(x):       
return x * x   
numbers = [1, 2, 3, 4, 5]   
# 使用 map 将 square 函数应用到 numbers 列表的每一个元素上   
result = map(square, numbers)   # 将结果转换为列表并输出   
print(list(result))  # 输出 [1, 4, 9, 16, 25]        
 # 使用 lambda 表达式   
numbers = [1, 2, 3, 4, 5]   
result = map(lambda x: x ** 3, numbers)   # 将结果转换为列表并输出   
print(list(result))  # 输出 [1, 8, 27, 64, 125]      # 多个可迭代对象   
def add(x, y):       
return x + y   
numbers1 = [1, 2, 3, 4]   
numbers2 = [5, 6, 7, 8]   # 使用 map 将 add 函数应用到 
numbers1 和 numbers2 列表的每一对元素上   
result = map(add, numbers1, numbers2)   # 将结果转换为列表并输出   
print(list(result))  # 输出 [6, 8, 10, 12]   

9.筛选符合特定条件的元素unsetunset

  • filter 函数用于从可迭代对象中过滤出符合特定条件的元素。它接受两个参数:一个函数和一个可迭代对象。函数应用于可迭代对象的每一个元素,只有当函数返回 True时,元素才会被包含在结果中。它返回一个迭代器,需要通过 list或 tuple 转换为具体的列表或元组来查看结果。可以与 lambda表达式结合使用,以简化条件定义。
# 基本用法   
def is_even(x):       
return x % 2 == 0   
numbers = [1, 2, 3, 4, 5, 6]   # 使用 filter 函数将 is_even 函数应用到 numbers 列表中   
result = filter(is_even, numbers)   # 将结果转换为列表并输出   
print(list(result))  # 输出 [2, 4, 6]      # 使用 lambda 表达式   
numbers = [5, 12, 8, 21, 15, 3]   # 使用 filter 函数和 lambda 表达式   
result = filter(lambda x: x > 10, numbers)   # 将结果转换为列表并输出   
print(list(result))  # 输出 [12, 21, 15]      # 过滤字符串列表   
def long_string(s):       
return len(s) > 3      
words = ["cat", "dog", "elephant", "ant"]      # 使用 filter 函数过滤出长度大于 3 的字符串   
result = filter(long_string, words)      # 将结果转换为列表并输出  
 print(list(result))  # 输出 ['elephant']   

10.将二维列表拉伸为一维度列表unsetunset

  • 将二维列表(即列表的列表)展平成一维列表是一个常见的操作。
# 使用列表推导式   
two_d_list = [[1, 2, 3], [4, 5], [6, 7, 8]]   # 使用列表推导式将二维列表展平成一维列表   
one_d_list = [item for sublist in two_d_list for item in sublist]   
print(one_d_list)  # 输出 [1, 2, 3, 4, 5, 6, 7, 8]      
# 使用 itertools.chain   
import itertools   
two_d_list = [[1, 2, 3], [4, 5], [6, 7, 8]]   # 使用 itertools.chain 将二维列表展平成一维列表   
one_d_list = list(itertools.chain.from_iterable(two_d_list))   
print(one_d_list)  # 输出 [1, 2, 3, 4, 5, 6, 7, 8]

图片

总结

  • 最后希望你编程学习上不急不躁,按照计划有条不紊推进,把任何一件事做到极致,都是不容易的,加油,努力!相信自己!

文末福利

  • 最后这里免费分享给大家一份Python全套学习资料,希望能帮到那些不满现状,想提升自己却又没有方向的朋友,也可以和我一起来学习交流呀。

包含编程资料、学习路线图、源代码、软件安装包等!【[点击这里]】领取!

  • ① Python所有方向的学习路线图,清楚各个方向要学什么东西
  • ② 100多节Python课程视频,涵盖必备基础、爬虫和数据分析
  • ③ 100多个Python实战案例,学习不再是只会理论
  • ④ 华为出品独家Python漫画教程,手机也能学习

可以扫描下方二维码领取【保证100%免费

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值