变量名作为函数参数?

2024-09-29 19:32:29 发布

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

我希望创建一个函数,它的参数是list L的名称及其参数。列表L中只有数字,我想把它们都四舍五入到小数点后1位(顺便说一句,列表L的元素应该用取整后的数字来代替,我不希望有新的列表M和它们一起出现)。遗憾的是,在我计划的脚本中,列表名称不同,列表的长度也不同。以下是我失败的尝试:

def rounding(name,*args):  
    M=[round(i,1) for i in args] #here is the list I want L to become
    name=M   #here I try to replace the previous list with the new one

morada=[1,2.2342,4.32423,6.1231]  #an easy example
rounding(morada,*morada)
print morada

输出:

^{pr2}$

Tags: theto函数name名称元素列表参数
3条回答

您可以使用eval()

例如,下面将从包含[1,2,3,4]的列表开始,并将第一个元素更改为5:

list_0 = [1, 2, 3, 4]

def modify_list(arg):
  list_1 = eval(arg)
  list_1[0] = 5

modify_list('list_0')
print list_0  

接近。列表是可变的,所以。。。在

name[:] = M

rounding函数return一个值。在

def rounding(list_):
    return [round(i, 1) for i in list_]

然后你可以这样做:

^{pr2}$

或者,如果您真的希望它在函数中赋值,您可以这样做:

def rounding(list_):
    list_[:] = [round(i,1) for i in args]

相关问题 更多 >

    热门问题