我的目标:用一个名为ni
的函数从数字x中得到位置i的数字。
例如:(i=3并且x=12345(=>n3(12345(==4。
我的任务围绕着大量的数字操作,我可以拥有多达10**24的数字。
我想创建24个函数:n1-n2。。n24在这样的for循环中一次完成:
for i in range(1,25):
def n`i`(x):
return int(str(x)[i])
一般来说,如何从数据列表中自动创建函数?
我对编码还是个新手,非常感谢您的建议!
正是您想要的。
for i in range(1, 10):
def fn(x):
return int(str(x)[i])
globals()[f"n{i}"] = fn # update global variables dictionary
#use them like
n3(123456)
但我建议定义一个同时接受两个参数的函数并使用它
def ni(i,x):
return int(str(x)[i])
ni(3, 123456)
尝试这个
#example data
import random
ranges=25
n = 10**24
number = [random.randint(n,n*10) for x in range(ranges)]
def ni(x,i):
return int(str(x)[i])
#print out all data and get the digit in the position i
for i in range(25):
print(ni(number[i],i))
#print a data and get all digit
for i in range(25):
print(ni(number[1],i))
#print a data and get the digit in the position i
ni(number[9],3)
ni(number[7],2)
ni(number[8],7)
我使用了以下简单代码来声明不同的函数名(网格名是我的情况(和不同的迭代次数。
meshname="mesh_{}".format(It)
为此";它";表示迭代次数。