显然xrange更快但我不知道为什么它更快(除了轶事到目前为止没有证据表明它更快)或者除此之外还有什么不同
for i in range(0, 20):
for i in xrange(0, 20):
Run Code Online (Sandbox Code Playgroud) 我的教授和这个人声称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为列表是不正确的.
我尝试执行以下代码但不能错误:未定义名称'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) 我尝试过以下方法:
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的经验.我有兴趣指定位置,半径和颜色.有没有更有效的方法来实现相同的结果?:
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) 我有两个大小相同的 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) 我想要一个变量,它是一个嵌套的列表,列出了一些我可以在以后填写的空列表.看起来像:
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)
但我正在寻找一种更优雅的解决方案(最好是单线).有没有?
我想问一下进行简单迭代的最佳方法是什么.假设我想重复某项任务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)
非常感谢
我写了一个程序来检查我对纸上解决方案的想法是否正确(事实确实如此).
任务:在从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:是的,这是一个家庭作业,但不是我的 - 我只是帮了一个人;-)
为什么我求 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 ×10
range ×3
numpy ×2
xrange ×2
arrays ×1
iteration ×1
list ×1
loops ×1
matplotlib ×1
nested-lists ×1
object ×1
performance ×1
python-2.7 ×1
python-2.x ×1
python-3.x ×1