Python学习5---极简使用技巧

本文主要介绍一些python的极简使用技巧,可简化代码,提高工作效率。

1、列表推导式
列表推导式是Python中快速生成列表的一个非常方便的方法。但除了基本用法外,你可以使用更复杂的条件来筛选和处理数据。
未使用推导式:

squares = []
for i in range(5):
  squares.append(i ** 2)

正常使用推导式:

squares = [x**2 for x in range(10)]

高级用法:筛选出偶数平方

even_squares = [x**2 for x in range(10) if x**2 % 2 == 0]

2、使用f-strings格式化字符串
手动格式化:

name = "Alice"
greeting = "Hello, " + name + "!"

f-strings格式化:

name = "Alice"
age = 30
print(f"{name} is {age} years old.") # 输出:Alice is 30 years old.

原因:使用+进行字符串拼接会导致代码可读性差,而且在复杂情况下容易出错,f-string 可读性更好。

3、使用with上下文管理器自动关闭文件
手动关闭:

file = open("example.txt", "r")
content = file.read()
file.close()

with自动关闭:

with open("example.txt", "r") as file:
  content = file.read()

原因:手动关闭文件容易忘记,使用上下文管理器(with语句)会在代码执行完毕后自动关闭文件,即使发生异常也会被正确处理,更加安全可靠。

4、使用字典的items方法获取键值
不使用:

my_dict = {'a': 1, 'b': 2, 'c':3}
for key in my_dict:
  print(key, my_dict[key])

使用:

my_dict = {'a': 1, 'b': 2, 'c':3}
for key, value in my_dict.items():
  print(key, value)

原因:items() 提供了更直接的方式同时获取键和值,避免了额外的字典查找。

5、使用enumerate()函数获取元素及其索引值
enumerate()提供了在迭代中同时获取索引和值的优雅方式,比手动追踪索引更好; enumerate(iteration, start)函数默认包含两个参数,其中iteration参数为需要遍历的参数,比如字典、列表、元组等,start参数为开始的参数,默认为0(不写start那就是从0开始)。enumerate函数有两个返回值,第一个返回值为从start参数开始的数,第二个参数为iteration参数中的值。

不使用:

my_list = ['apple', 'banana', 'orange']
for i in range(len(my_list)):
  item = my_list[i]
  print(i, item)

使用:

my_list = ['apple', 'banana', 'orange']
for i, item in enumerate(my_list):
  print(i, item)

6、使用生成器节省内存

对于处理大型数据集,使用生成器是一个内存高效的解决方案。生成器允许逐项处理数据,而不是一次性加载整个数据集。

# 大文件逐行读取,返回一个生成器对象,每次调用该函数,会读取文件的一行内容
def read_large_file(file_name):
    with open(file_name, 'r') as file:
        for line in file:
            yield line.strip()

# 使用生成器处理数据
for line in read_large_file('large_data.txt'):
    print(line)

7、利用zip函数同时遍历多个列表
当你需要将多个列表中的数据组合时,zip函数可以同步遍历多个可迭代对象。

names = ['Alice', 'Bob', 'Charlie']
scores = [85, 90, 95]

for name, score in zip(names, scores):
    print(f"{name}: {score}")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ghx3110

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值