发布于 2026-01-06 2 阅读
0

Python 开发人员必备的 Python 技巧和窍门;Python 中的简写语句编写;Mux 呈现的 DEV 全球展示挑战赛:展示你的项目!

Python 开发人员必备的 Python 技巧和窍门

在 Python 中编写简写语句

由 Mux 主办的 DEV 全球展示挑战赛:展示你的项目!

在 Python 中编写简写语句

Python 提供了简写语句和简写运算符。这些功能可以帮助你用更少的语句编写更多的逻辑。

我们将看到那些可用的简写语句。

文件示例简写.py

lambda 语句

几乎每个人都听说过 lambda 函数。lambda 语句可以帮助我们编写无需命名函数的单行函数。它会返回函数引用,你可以将其赋值给任何变量。它有点像 JavaScript 的匿名函数。

foo = lambda a: a+3
foo(3)
6
foo(8)
11
Enter fullscreen mode Exit fullscreen mode

自称 Lambda

你可以编写 lambda 表达式,并让它像 JavaScript 中的自调用函数一样调用自身。我们来看一个例子。

(lambda a: a+3)(8)
11
(lambda x: x**x)(3)
27
Enter fullscreen mode Exit fullscreen mode

列表理解

列表推导式是 Python 的一项强大功能。使用它,您可以减少代码量,降低代码的空间复杂度。简单的 for 循环也可以使用列表推导式来编写。

句法:

L = [源列表元素映射表达式(如果筛选表达式) ]

在哪里:

L变量,结果被赋值给

映射表达式,仅在 if 条件中筛选表达式大于真时,才在每次循环中执行。

这个列表推导式等价于:

result = []
for element in source-list:
  if filter-expression:
    result.append(mapping-expression)
Enter fullscreen mode Exit fullscreen mode

例子

我们来看一个列表推导式的例子。从给定的范围内获取偶数。

  • 常用代码
result = []
for i in range(10):
  if i%2 == 0:
    result.append(i)

print(result)
[0, 2, 4, 6, 8]
Enter fullscreen mode Exit fullscreen mode
  • 列表理解
[i for i in range(10) if i%2==0]
[0, 2, 4, 6, 8]
Enter fullscreen mode Exit fullscreen mode

听写理解

字典推导式在 Python 2.7 和 3.x 版本中可用。这种语法可以将用于创建字典的多行代码封装成一行。它类似于列表推导式,但使用字典字面量 {} 而不是 []。

句法:

{ key : value for element in source-list if filter-expression }

让我们通过一个例子来说明如何使用它。

我有一份水果列表,我想通过改变它们的大小写将它们变成字典。

['苹果', '芒果', '橙子']

我想把所有键都转换成小写。这是我们在不使用列表推导式的情况下可以实现的。

l = ['MANGO', 'APPLE', 'ORANGE']

d = {}

for i in l:
  d[i.upper()] = 1

{'ORANGE': 1, 'MANGO': 1, 'APPLE': 1}
Enter fullscreen mode Exit fullscreen mode

使用简单的列表推导式。

{i.upper(): 1 for i in l}
Enter fullscreen mode Exit fullscreen mode

集合理解

集合推导式的语法与字典推导式的语法非常相似,只有一些细微差别。

我们来看一个字典推导式的例子。使用以下语句可以生成一个集合。

{i.upper() for i in l}
Enter fullscreen mode Exit fullscreen mode

我们没有像在字典推导式中那样指定值。

生成器表达式

你可能已经了解生成器了。任何包含 yield 语句的函数都称为生成器。生成器会返回一个可迭代对象,我们可以调用它的 next 方法来获取序列中的下一个元素。Python 为生成器提供了类似 lambda 的简写形式。它类似于列表推导式,只是将表达式用元组字面量括起来。

  • 生成器函数
def gen():
  for i in range(10):
    yield i 
g = gen()
<generator object gen at 0x7f60fa104410>
g.next()
0
g.next()
1
Enter fullscreen mode Exit fullscreen mode
  • 生成器表达式

同一个生成器函数可以写成如下形式。

g = (i for i in range(10))
g
<generator object <genexpr> at 0x7f60fa1045f0>
g.next()
0
Enter fullscreen mode Exit fullscreen mode

简写 If Else

就像 C 语言和 JavaScript 的三元运算符 (?:) 一样,你可以用 Python 编写简写的 if-else 比较语句。考虑到代码的可读性,Python 的语法如下。

if表达式如果(条件)否则else表达式

这相当于。

if True:
  print("This is True")
else:
  print("This is False")
Enter fullscreen mode Exit fullscreen mode

元组解包

Python 3 更强大的解包功能。如下所示。

例子:

a, rest = [1, 3, 4, 6]
Enter fullscreen mode Exit fullscreen mode

在这种情况下,a 的值将为 1,列表中的其余元素将被赋值给变量 rest,即 [3, 4, 6]。

使用分隔符进行字符串连接

如果你想用随机分隔符连接字符串列表,可以使用字符串方法join来实现。

" || ".join(["hello", "world", "how", "are", "you"])

'hello || world || how || are || you'
Enter fullscreen mode Exit fullscreen mode

精辟的一句话

你是否厌倦了阅读一行行代码,迷失在条件语句中?Python 单行代码或许正是你所需要的。例如,条件语句。

if alpha > 7:
   beta = 999
elif alpha == 7:
   beta = 99
else:
   beta = 0
Enter fullscreen mode Exit fullscreen mode

其实可以简化为:

beta = 999 if alpha > 7 else 99 if alpha == 7 else 0
Enter fullscreen mode Exit fullscreen mode

从列表中删除重复项

大多数情况下,我们希望从列表中删除或查找重复项。让我们看看如何从列表中删除重复项。最佳方法是将列表转换为集合。集合是一种无序数据结构,包含唯一值,并且不允许复制。

listNumbers = [20, 22, 24, 26, 28, 28, 20, 30, 24]
print("Original= ", listNumbers)

listNumbers = list(set(listNumbers))
print("After removing duplicate= ", listNumbers)
Enter fullscreen mode Exit fullscreen mode

如何高效地比较两个无序列表

以上两个列表包含相同的元素,只是顺序不同。让我们看看如何判断两个列表是否相同。

  • collections.Counter如果我们的对象是可哈希的,我们可以使用该方法。
  • 我们可以使用sorted()对象是否可排序这一特性。
from collections import Counter

one = [33, 22, 11, 44, 55]
two = [22, 11, 44, 55, 33]
print("is two list are b equal", Counter(one) == Counter(two))
Enter fullscreen mode Exit fullscreen mode

将字节转换为字符串

要将字节转换为字符串,我们可以对字节对象进行解码以生成字符串。您可以使用所需的字符集进行解码。

byteVar = b"pynative"
str = str(byteVar.decode("utf-8"))
print("Byte to string is" , str )
Enter fullscreen mode Exit fullscreen mode

将十六进制字符串转换为整数

hexNumber = "0xfde"
stringNumber="34"

print("Hext toint", int(hexNumber, 0))
print("String to int", int(stringNumber, 0))
Enter fullscreen mode Exit fullscreen mode

受到推崇的

🎉 🎉 🎉

查看我在 GitHub 上的代码仓库💡

文章来源:https://dev.to/tuantvk/essential-python-tips-and-tricks-for-python-developer-5g9j