网站搜索

如何在 Python 中反转字符串?

Python 的 str 对象没有内置的 reverse 方法。如何反转字符串?

答案 #1

使用切片:

>>> 'hello world'[::-1] 'dlrow olleh'

切片表示法采用 [start:stop:step] 的形式。在这种情况下,我们省略了 start 和 stop 位置,因为我们想要整个字符串。我们还使用 step=-1,这意味着“从 1 个字符重复从右到左步”。

答案 #2

实现字符串的反向函数的最佳方法是什么?

我自

阅读更多 →

python - 如何检查 NaN 值

float('nan') 表示 NaN (不是数字)。但是我该如何检查呢?

答案 #1

使用 math.isnan:

>>> import math >>> x = float('nan') >>> math.isnan(x) True

答案 #2

测试 NaN 的常用方法是查看它是否等于自身:

def isNaN(num): ret

阅读更多 →

python - 如何将图例放在图之外

我有一系列的 20 个情节(不是子情节)要制作成一个图形。我希望图例开箱即用。同时,我不想更改轴,因为图形的大小会减小。

  1. 我想将图例框保持在绘图区域之外(我希望图例位于绘图区域右侧的外部)。
  2. 有没有办法减小图例框内文本的字体大小,使图例框的大小变小?

答案 #1

有多种方法可以做你想做的事。 为了补充 Christian Alis 和 Navi 已经说过的内容,您可以使用 bbox_to_anchor 关键字参数将图例部分放置在轴之外和/或减小字体大小。

在考虑减小字体大小(这会使内容变得非常难以阅读)之前,请尝试将图例放在不同位置:

那么,让我们从一个通用示例开始:

import matplotlib.pyplot as plt import numpy as np x = np.arange(10) fig = plt.figure() ax = plt.sub

阅读更多 →

class - 为什么 Python 类继承对象?

为什么下面的类声明继承自 object?

class MyClass(object): ...

答案 #1

类声明是否有任何理由继承自 object?

在 Python 3 中,除了 Python 2 和 3 之间的兼容性之外,没有原因。在 Python 2 中,有很多原因。

阅读更多 →

Python 中 switch 语句的替代品?

我想在 Python 中编写一个函数,该函数根据输入索引的值返回不同的固定值。

在其他语言中,我会使用 switch 或 case 语句,但 Python 似乎没有 switch 语句。 在这种情况下,推荐的 Python 解决方案有哪些?

答案 #1

Python 3.10 (2021) 引入了 match-case 语句,该语句为 Python 提供了 “switch” 的一流实现。例如:

阅读更多 →

python - 列表推导式中的 if/else

如何将以下包含 if/else 的 for 循环转换为列表推导式?

results = [] for x in xs: results.append(f(x) if x is not None else '')

如果 x 为 None,则应生成 '' ,否则为 f(x)。我试过了:

[f(x) for x in xs if x is not None else '']

阅读更多 →

performance - 如何分析 Python 脚本?

Project Euler 和其他编码竞赛通常有最长的运行时间,或者人们吹嘘他们的特定解决方案运行得有多快。使用 Python 时,有时方法有些笨拙 - 即,向 __main__ 添加计时代码。

分析 Python 程序运行需要多长时间的好方法是什么?

答案 #1

Python 包括一个名为 cProfile 的分析器。它不仅提供总运行时间,还单独计算每个函数的计时,并告诉您每个函数被调用了多少次,从而可以轻松确定应该在哪些方面进行优化。

您可以从代码中或解释器中调用它,如下所示:

import cProfile cProfile.run('foo()')

更有用的是,您可以在运行脚本时调用 cProfile:

python -m cProfile myscript.py

阅读更多 →

在 Python 中实现单例的最佳方法是什么

这个问题不是为了讨论单例设计模式是否可取,是否是一种反模式,或任何宗教战争,而是讨论如何以最 pythonic 的方式在 Python 中最好地实现这种模式。在这种情况下,我将 'most pythonic' 定义为它遵循 “最小惊讶原则”。

我有多个类会变成单例(我的用例是 Logger,但这并不重要)。我不想在我可以简单地继承或装饰时用额外的口香糖弄乱几个类。

最佳方法:


方法 1:装饰器

def singleton(

阅读更多 →

string - 如何从 Python 中的路径中获取不带扩展名的文件名?

如何从 Python 中的路径获取不带扩展名的文件名?

"/path/to/some/file.txt" → "file"

答案 #1

Python 3.4+ 版

使用 pathlib。路径.stem

>>> from pat

阅读更多 →

syntax - __all__在 Python 中是什么意思?

我在 __init__.py 文件中看到__all__。它有什么作用?

答案 #1

链接到但此处未明确提及的正是 __all__ 的使用时间。它是一个字符串列表,定义在模块上使用 from <module> import * 时将导出模块中的哪些符号。

例如,foo.py 中的以下代码显式导出符号 bar 和 baz:

__all__ = ['bar', 'baz'] waz = 5 ba

阅读更多 →