我正在寻找一种优雅的更通用的方法来填充带有变量的字典:
np.arange(n)
是否有更通用的方法而不在引号中使用变量名?
答案 0 :(得分:3)
如果报价是问题,那怎么样?
fruit = 'apple'
vegetable = 'potato'
dic = dict(
fruit = fruit,
vegetable = vegetable
)
答案 1 :(得分:1)
可能不是一个非常优雅的解决方案,但您可以使用locals()
检索变量,然后将它们转换为字典。
fruit = 'apple'
vegetable = 'potato'
dic = {key:value for key, value in locals().items() if not key.startswith('__')}
这导致{'vegetable': 'potato', 'fruit': 'apple'}
但是,我认为更好的选择是传递变量名称并创建this answer中提供的字典:
def create_dict(*args):
return dict({i:eval(i) for i in args})
dic = create_dict('fruit', 'vegetable')
编辑:使用eval()
很危险。有关详细信息,请参阅this answer。