在具有名称的循环中创建函数取决于iterable

2024-09-27 21:23:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我的目标是:用一个名为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])

通常,如何从数据列表中自动创建函数

我对编码还是新手,非常感谢您的建议


Tags: 函数ingt目标forreturndefrange
2条回答

试试这个

#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)

正是你想要的

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) 

相关问题 更多 >

    热门问题