10 个将改变您的编码的 Python 单行代码

B站影视 2025-01-25 10:30 2

摘要:lambda 函数可以说是最著名的单行代码之一,它是一种非常紧凑的方法来定义匿名函数,只需在 “:” 符号的左侧指定输入参数,并在右侧指定要对它们执行的操作。此代码定义了一个函数,该函数通过将原始产品的价格降低 10% 来计算折扣价格。

lambda 函数可以说是最著名的单行代码之一,它是一种非常紧凑的方法来定义匿名函数,只需在 “:” 符号的左侧指定输入参数,并在右侧指定要对它们执行的操作。此代码定义了一个函数,该函数通过将原始产品的价格降低 10% 来计算折扣价格。

price_after_discount = lambda price: price*0.9

Map 操作对于将相同的转换应用于集合中的所有元素(如列表)非常有用。它们还可以与自定义的可重用 lambda 函数结合使用。例如,假设您在一家免税政策的旅游纪念品商店有一份原始产品价格清单,并且您想要另一个清单,其中包含税后的最终价格 (总价的 10%)。通过使用前面定义的 lambda 函数,可以尝试如下操作:

discounted_prices = list(map(price_after_discount, prices))


假设您有一个类似于 product_prices = [19.99, 5.49, 12.99] 的价目表,并且您希望逐个打印所有这些价格。为什么不使用 '*' 运算符来解压缩列表并在一行中打印由空格分隔的元素,而不是使用循环结构来执行此操作呢?

print(*product_prices)

您的商店中有一个产品名称列表,例如 products = ["Keychain", "T-Shirt", "Mug", "Magnet", "Snow Globe"] ,并且您希望获取一个包含名称以“M”开头的产品索引的新列表。您可以通过列表推导来执行此操作,即根据分析现有列表的值中的条件来构建新列表。

[index for index in range(len(products)) if products[index][0] == 'M']

一对有用的函数可以快速检查集合中所有元素中的条件,是 anyall。它们都返回 True/False 值,指示是否至少有一个元素持有条件 (any),或者集合中的所有元素是否都完成它 (all)。

如果您有商品的库存水平列表,例如 inventory = [4, 0, 7, 10, 0],您可以尝试:

any_out_of_stock = any(stock == 0 for stock in inventory)all_in_stock = all(stock > 0 for stock in inventory)

Walrus 运算符 ':=' 将变量的赋值和使用结合在同一个表达式中,从而简化了在需要一次性变量的情况下执行条件语句的方法。例如,假设我们在提交客户文本评论之前对其进行分析,则检查评论是否至少有 30 个字符的有效方法是:

if (n := len(customer_review))

现在让我们进入词典吧!假设我们有一个字典,其中包含我们每个产品的销售编号。

sales_data = { 'Keychain': 1200, 'T-shirt': 800, 'Mug': 500, 'Magnet': 1500}

这行代码按销售降序对产品进行排序:

sorted_sales = dict(sorted(sales_data.items, key=lambda item: item[1], reverse=True))

您还可以结合使用 filter 和 lambda 函数来筛选 Python 字典中的条目,如下所示,以筛选最畅销的产品(售出 1000 件或更多商品的产品):best_selling_products = list(filter(lambda item: item[1] > 1000, sales_data.items))

由于 reduce 函数,对列表中的元素执行聚合再简单不过了,该函数与 lambda 函数结合使用,有助于将集合中的元素(例如每个产品的销售额)“减少”为单个代表值,例如所有产品的销售额总数:

total_sales = reduce(lambda x, y: x + y, sales_data.values)

用一个有趣的运算符来结束,它定义了一组列表,这些列表由作为参数传递的列表的所有可能排列给出。

from itertools import permutationslist(permutations(['Alicia', 'Bob', 'Cristina', 'David']))

需要让一个四人委员会坐在一个线性表格中参加活动,并且不确定用哪种方式/多少种方式将他们一个接一个地放置?排列将为你提供所有可能的解决方案。

来源:自由坦荡的湖泊AI

相关推荐