我正在尝试使用exec函数修改字典值

问题描述 投票:-3回答:1

我有一个字典,名为data我有一条声明,希望由exec运行。它适用,但不分配值(无结果)

如何使其运作?

data {'a': 'b', 'res': {}, 'new': []}

str_ev = "if a == b : data [res]['aa'] = 'bb' and data['new'].append('aa')"

exec(str_ev)

我希望:

data {'a': 'b', 'res': {'aa': 'bb'}, 'new': ['aa']}

但实际输出是:

data {'a': 'b', 'res': {'aa': None}, 'new': ['aa']}
python dictionary exec
1个回答
0
投票

我认为您的意思是:

代码:

data = {'a': 'b', 'res': {}, 'new': []}

data = {'a': 'b', 'res': {}, 'new': []}

str_ev = \
"""
if data['a'] == 'b': 
    data ['res']['aa'] = 'bb' 
    data['new'].append('aa')
"""
exec(str_ev)

print(data)

输出:

{'a': 'b', 'res': {'aa': 'bb'}, 'new': ['aa']}
© www.soinside.com 2019 - 2024. All rights reserved.