相关疑难解决方法(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万
查看次数

range()真的创建列表吗?

我的教授和这个人声称range创建了一系列价值观.

"注意:范围函数只返回一个包含从x到y-1的数字的列表.例如,范围(5,10)返回列表[5,6,7,8,9]."

我认为这是不准确的,因为:

type(range(5, 10))
<class 'range'>
Run Code Online (Sandbox Code Playgroud)

此外,访问创建的整数的唯一明显方法range是迭代它们,这使我相信标记range为列表是不正确的.

python range

46
推荐指数
2
解决办法
1万
查看次数

名称'xrange'未在Python 3中定义

我尝试执行以下代码但不能错误:未定义名称'xrange'

pages = (
    requests.get(
        build_group_request({
            "offset": WINDOW_SIZE * i,
            "count": WINDOW_SIZE,
            "fields": "sex,interests,bdate"
        })
    ).json()['response']['items']
    for i in xrange(int(float(COUNT) / 100 + 1))
)
Run Code Online (Sandbox Code Playgroud)

python range xrange python-3.x

18
推荐指数
1
解决办法
6万
查看次数

如何使用x和y坐标循环2D numpy数组而不会超出界限错误?

我尝试过以下方法:

import numpy as np
a = np.array([[1,2,3],[4,5,6],[7,8,9],[10,11,12]])
print a
rows = a.shape[0]
cols = a.shape[1]
print rows
print cols

for x in range(0, cols - 1):
    for y in range(0, rows -1):
        print a[x,y]
Run Code Online (Sandbox Code Playgroud)

这将只打印数字1 - 6.

我也尝试过从范围中的行或列中减去1,但这会导致越界错误或者不会打印所有数字.

python arrays numpy

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

如何快速绘制数千个圆圈?

我正在尝试绘制几个(数千个)圆形对象 - 我没有太多使用python的经验.我有兴趣指定位置,半径和颜色.有没有更有效的方法来实现相同的结果?:

import matplotlib.pyplot as plt

xvals = [0,.1,.2,.3]
yvals = [0,.1,.2,.3]
rvals = [0,.1,.1,.1]

c1vals = [0,.1,0..1]
c2vals = [.1,0,.1,0]
c3vals = [.1,.1,.1,.1]

for q in range(0,4):
    circle1=plt.Circle((xvals[q], yvals[q]), rvals[q], color=[0,0,0])
    plt.gcf().gca().add_artist(circle1)
Run Code Online (Sandbox Code Playgroud)

python performance object matplotlib

8
推荐指数
1
解决办法
1962
查看次数

给定起始位置和结束位置列表构造 Numpy 索引

我有两个大小相同的 numpy.array 对象(都是一维),其中一个包含起始索引位置列表,另一个包含结束索引位置列表(或者你可以说我有一个列表起始位置和窗口长度)。如果重要的话,由起始位置和结束位置形成的切片保证不重叠。我试图弄清楚如何使用这些开始和结束位置来形成另一个数组对象的索引,而不必使用循环。

例如:

import numpy as np
start = np.array([1,7,20])
end = np.array([3,10,25])
Run Code Online (Sandbox Code Playgroud)

想参考一下

somearray[1,2,7,8,9,20,21,22,23,24])
Run Code Online (Sandbox Code Playgroud)

python numpy

7
推荐指数
1
解决办法
1958
查看次数

如何在python中创建一些空的嵌套列表

我想要一个变量,它是一个嵌套的列表,列出了一些我可以在以后填写的空列表.看起来像:

my_variable=[[], [], [], []]
Run Code Online (Sandbox Code Playgroud)

但是,我事先并不知道我需要多少列表,只是在创建步骤,因此我需要一个变量a来确定它.我想简单my_variable=[[]]*a,但是创建了列表的副本,这不是我想要的.

我可以:

my_variable=[]  
for x in range(a):
   my_variable.append([])
Run Code Online (Sandbox Code Playgroud)

但我正在寻找一种更优雅的解决方案(最好是单线).有没有?

python list nested-lists

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

python简单迭代

我想问一下进行简单迭代的最佳方法是什么.假设我想重复某项任务1000次,以下哪项是最好的?或者,还有更好的方法?

for i in range(1000):
    do something with no reference to i

i = 0
while i < 1000:
    do something with no reference to i
    i += 1
Run Code Online (Sandbox Code Playgroud)

非常感谢

python iteration

6
推荐指数
3
解决办法
1万
查看次数

简化这个python代码

我写了一个程序来检查我对纸上解决方案的想法是否正确(事实确实如此).

任务:在从10到200的所有数字相乘的后面有多少个零.

它是48,手动计算很简单.

我从来没有认真地写过python,这就是我得到的:

mul = 1
for i in range(10, 200 + 1):
    mul *= i

string = str(mul)
string = string[::-1]
count = 0;
for c in str(string):
    if c == '0':
        count += 1
    else:
        break

print count
print mul
Run Code Online (Sandbox Code Playgroud)

我打赌有可能用像python这样的语言写出更优雅的东西.

ps:是的,这是一个家庭作业,但不是我的 - 我只是帮了一个人;-)

python

5
推荐指数
2
解决办法
1056
查看次数

欧拉项目 #10 (Python)

为什么我求 200 万以下所有素数总和的算法这么慢?我是一个相当初级的程序员,这就是我为寻找解决方案而想出的方法:

import time

sum = 2
start = time.time()

for number in range(3, 2000000):
    prime = True
    for x in range(2, number):
        if number % x == 0:
            prime = False
    if prime:
        sum += number

print "Sum =", sum
end = time.time() - start
print "Runtime =", end
Run Code Online (Sandbox Code Playgroud)

有人可以帮我吗?谢谢!

python python-2.7

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