是否可以在不将字典作为参数传递的情况下修改函数内字典的值。
我不想返回字典,而只想修改它的值。
这是可能的,但不一定是可取的,我无法想象为什么你不想传递或返回字典,如果你只是不想返回字典,但可以传递它,你可以修改它以反映在原始字典而不必返回它,例如:
dict = {'1':'one','2':'two'}
def foo(d):
d['1'] = 'ONE'
print dict['1'] # prints 'one' original value
foo(dict)
print dict['1'] # prints 'ONE' ie, modification reflects in original value
# so no need to return it
但是,如果您出于某种原因绝对无法通过它,则可以使用全局字典,如下所示:
global dict # declare dictionary as global
dict = {'1':'one','2':'two'} # give initial value to dict
def foo():
global dict # bind dict to the one in global scope
dict['1'] = 'ONE'
print dict['1'] # prints 'one'
foo(dict)
print dict['1'] # prints 'ONE'
我建议使用第一个代码块中演示的第一种方法,但如果绝对必要,请随意使用第二种方法。
享受 :)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)