变量名作为函数参数?
Variable name as function argument?
我想创建一个函数,其参数是列表 L 的名称及其参数。列表 L 中只有数字,我想将它们全部四舍五入为小数点后一位(顺便说一句,列表 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
输出:
[1, 2.2342, 4.32423, 6.1231] #No changes
关闭。列表是可变的,所以...
name[:] = M
rounding
函数return
有一个值。
def rounding(list_):
return [round(i, 1) for i in list_]
那么你可以这样做:
>>> morada=[1,2.2342,4.32423,6.1231] #an easy example
>>> morada = rounding(morada)
>>> morada
[1, 2.2, 4.3, 6.1]
或者如果您真的希望它在函数内赋值,您可以这样做:
def rounding(list_):
list_[:] = [round(i,1) for i in args]
您可以使用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
我想创建一个函数,其参数是列表 L 的名称及其参数。列表 L 中只有数字,我想将它们全部四舍五入为小数点后一位(顺便说一句,列表 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
输出:
[1, 2.2342, 4.32423, 6.1231] #No changes
关闭。列表是可变的,所以...
name[:] = M
rounding
函数return
有一个值。
def rounding(list_):
return [round(i, 1) for i in list_]
那么你可以这样做:
>>> morada=[1,2.2342,4.32423,6.1231] #an easy example
>>> morada = rounding(morada)
>>> morada
[1, 2.2, 4.3, 6.1]
或者如果您真的希望它在函数内赋值,您可以这样做:
def rounding(list_):
list_[:] = [round(i,1) for i in args]
您可以使用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