如果我想找到数字的数字之和,即:
93214,即(9 + 3 + 2)这样做的最快方法是什么?
我本能地做了:
sum(int(digit) for digit in str(number))
Run Code Online (Sandbox Code Playgroud)
我在网上找到了这个:
sum(map(int, str(number)))
Run Code Online (Sandbox Code Playgroud)
哪种方法最适合速度,还有其他方法更快吗?
我已经定义了如下函数来尝试在两组数据之间进行插值.当我运行它时,我收到消息:
for i, j in range(0, len(wavelength)):
TypeError: 'int' object is not iterable
Run Code Online (Sandbox Code Playgroud)
我不确定我做错了什么.不可否认,我对此并不擅长.
def accountforfilter(wavelength, flux, filterwavelength, throughput):
filteredwavelength=[]
filteredflux=[]
for i in range(0, len(wavelength)):
if wavelength[i] in filterwavelength[j]:
j=filterwavelength.index(wavelength[i])
filteredwavelength.append(wavelength[i])
filteredflux.append(flux[i]*throughput[j])
elif wavelength[i]<filterwavelength[j]<wavelength[i+1]:
m=((throughput[j+1]-throughput[j])/(filterwavelength[j+1]-filterwavelength[j])
c=throughput[j]-(m*(wavelength[i]))
filteredwavelength.append(wavelength[i])
filteredflux.append(flux[i]*(m*wavelength[i]+c)
return filteredwavelength, filteredflux
Run Code Online (Sandbox Code Playgroud)