相关疑难解决方法(0)

Python 2.X中range和xrange函数有什么区别?

显然xrange更快但我不知道为什么它更快(除了轶事到目前为止没有证据表明它更快)或者除此之外还有什么不同

for i in range(0, 20):
for i in xrange(0, 20):
Run Code Online (Sandbox Code Playgroud)

python loops range xrange python-2.x

690
推荐指数
15
解决办法
36万
查看次数

在python中创建一个具有特定大小的空列表

我想创建一个可以容纳10个元素的空列表(或者是最好的方法).

之后我想在该列表中分配值,例如,这应该显示0到9:

s1 = list();
for i in range(0,9):
   s1[i] = i

print  s1
Run Code Online (Sandbox Code Playgroud)

但是,当我运行此代码时,它会生成错误,或者在另一种情况下,它只显示[](空).

有人可以解释原因吗?

python list

465
推荐指数
11
解决办法
115万
查看次数

如何检查int是否在两个数字之间?

我正在使用2.3 IDLE而且我遇到了问题.

我需要检查一个数字是否介于两个其他数字10000和30000之间:

if number >= 10000 and number >= 30000:
    print ("you have to pay 5% taxes")
Run Code Online (Sandbox Code Playgroud)

它运作得不好.

python

317
推荐指数
11
解决办法
54万
查看次数

PyCharm:"简化链式比较"

我有一个整数值x,我需要检查它是否在a startend值之间,所以我写下面的语句:

if x >= start and x <= end:
    # do stuff
Run Code Online (Sandbox Code Playgroud)

这个陈述有下划线,工具提示告诉我必须

简化链式比较

据我所知,这种比较就像它们来的一样简单.我错过了什么?

python pycharm

225
推荐指数
2
解决办法
7万
查看次数

Python:斜杠在help()输出中意味着什么?

在关闭括号之前/,Python 3.4的help输出意味着什么range

>>> help(range)
Help on class range in module builtins:

class range(object)
 |  range(stop) -> range object
 |  range(start, stop[, step]) -> range object
 |  
 |  Return a virtual sequence of numbers from start to stop by step.
 |  
 |  Methods defined here:
 |  
 |  __contains__(self, key, /)
 |      Return key in self.
 |  
 |  __eq__(self, value, /)
 |      Return self==value.

                                        ...
Run Code Online (Sandbox Code Playgroud)

python introspection python-3.x

119
推荐指数
3
解决办法
2万
查看次数

懒惰评估为何有用?

我一直想知道懒惰评估为何有用.我还没有任何人以有道理的方式向我解释; 最重要的是它最终沸腾到"相信我".

注意:我不是指记忆.

haskell functional-programming lazy-evaluation

112
推荐指数
14
解决办法
3万
查看次数

为什么在Python 3中范围(0)==范围(2,2,2)为真?

为什么使用不同值初始化的范围在Python 3中相互比较?

当我在我的解释器中执行以下命令时:

>>> r1 = range(0)
>>> r2 = range(2, 2, 2)
>>> r1 == r2
True
Run Code Online (Sandbox Code Playgroud)

结果是True.为什么会这样?为什么range具有不同参数值的两个不同对象被视为相等?

python identity range python-3.x python-internals

53
推荐指数
5
解决办法
1万
查看次数

为什么 np.sum(range(N)) 非常慢?

我看过一个关于 python 中循环速度的视频,其中解释说,这样做sum(range(N))比手动循环并将变量添加在一起要快得多range,因为前者由于使用了内置函数而在 C 中运行,而在后者中求和是在(慢)Python 中完成的。numpy我很好奇添加到混合物中会发生什么。正如我预期的那样np.sum(np.arange(N)),它是最快的,但sum(np.arange(N))np.sum(range(N))执行简单的 for 循环还要慢。

为什么是这样?

这是我用来测试的脚本,一些关于我所知道的缓慢原因的评论(主要来自视频)以及我在我的机器上得到的结果(python 3.10.0,numpy 1.21.2):

更新的脚本:

import numpy as np
from timeit import timeit

N = 10_000_000
repetition = 10

def sum0(N = N):
    s = 0
    i = 0
    while i < N: # condition is checked in python
        s += i
        i += 1 # both additions are done in python
    return s

def sum1(N = N): …
Run Code Online (Sandbox Code Playgroud)

python performance numpy

30
推荐指数
3
解决办法
2356
查看次数

有没有办法在Python中返回min和max的自定义值?

我有一个自定义类,

class A:
    def __init__(self, a, b):
        self.a = a
        self.b = b
Run Code Online (Sandbox Code Playgroud)

该类不可迭代或可索引或类似的东西.如果可能的话,我想保持这种方式.有可能像以下工作一样吗?

>>> x = A(1, 2)
>>> min(x)
1
>>> max(x)
2
Run Code Online (Sandbox Code Playgroud)

让我想到这一点的是,minmax文档中列为"通用序列操作" .由于range被同一个文档认为是序列类型,我认为必须有某种可能的优化range,也许我可以利用它.

也许有一种我不知道的神奇方法可以实现这一点吗?

python magic-methods python-3.x

17
推荐指数
3
解决办法
3096
查看次数

有没有更好的方法来检查一个数字是否是两个数字的范围

我试图检查一个数字是否在整数范围内,并根据它所在的范围返回一个数字。我想知道是否有更好,更有效的方法来做到这一点:

def checkRange(number):
    if number in range(0, 5499):
        return 5000
    elif number in range(5500, 9499):
        return 10000
    elif number in range(9500, 14499):
        return 15000
    elif number in range(14500, 19499):
        return 20000
    elif number in range(19500, 24499):
        return 25000
    elif number in range(24500, 29499):
        return 30000
    elif number in range(29500, 34499):
        return 35000
    elif number in range(34500, 39499):
        return 40000
    elif number in range(39500, 44499):
        return 45000
Run Code Online (Sandbox Code Playgroud)

这感觉像是在浪费资源,如果有更好的方法来做到这一点,我们将不胜感激。

python if-statement range python-3.x

16
推荐指数
2
解决办法
2500
查看次数