Pythonのdictionaryの参照渡しについて、記載する これを使用することで、関数の返り値に明示的に指定しなくても 変数の受け渡しが可能である。 ただし、可読性が悪い気がする
def test_dict(d_func): for rsrc_key, rsrc_info in d_func.items(): # print(rsrc_key, rsrc_info) rsrc_info['key1'] = 10 d = {"1": {'key1': 1, 'key2': 2, 'key3': 3}, "2" : {'key1': 4, 'key2': 5, 'key3': 6}} print('before: {}'.format(d)) test_dict(d) print('after: {}'.format(d))
実行結果
before: {'1': {'key1': 1, 'key2': 2, 'key3': 3}, '2': {'key1': 4, 'key2': 5, 'key3': 6}} after: {'1': {'key1': 10, 'key2': 2, 'key3': 3}, '2': {'key1': 10, 'key2': 5, 'key3': 6}}
関数実行後のafterに'key1': 10 が代入されていることがわかる