python - 将字典元素作为参数传递给函数

标签 python string function dictionary arguments

看到了类似问题的一些答案,但没有内置函数/多条目词典。假设我有一个字典,其中包含不同 map 投影的 basemap 参数;

Domains = {'TPCentral':["projection='geos',lon_0=-160,lat_0=0,resolution='l'"],
'World':["projection='robin',lon_0=0"]}

我想调用 basemap 函数(来自maplotlib),以便

m = Basemap(Domains['TPCentral'])

这样它的功能相当于;

m = Basemap(projection='geos',lon_0=-160,lat_0=0,resolution='l')

问题是这将其作为一个长字符串传递,不确定如何将其分解为单独的参数(尝试使用 *)。提前致谢!

最佳答案

["projection='geos',lon_0=-160,lat_0=0,resolution='l'"]

是包含单个字符串的列表。对它使用解包会产生一个字符列表 - 这几乎肯定比您的参数数量大得多,而且肯定不是您想要发送的参数。您最好使用字典来保存这些值:

'TPCentral': {
    'projection': 'geos',
    'lon_0': -160,
    'lat_0': 0,
    'resolution': 'l'}

然后用关键字参数解包解包:

m = Basemap(**Domains['TPCentral'])
<小时/>

如果你迫于这种格式,你可以做一些字符串处理,比如

pairs = [x.split('=') for x in Domains['TPCentral'][0].split(',')]
Domains['TPCentral'] = {k: eval(v) for k, v in pairs}

关于python - 将字典元素作为参数传递给函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43765091/

相关文章:

c# - 如果字符串包含用户定义的 "value",如何返回字符串的完整内容?

php - Symfony-在null上调用成员函数setFunction()

function - 如何在map函数中连接列表-Haskell?

php - 带有 ibase 查询的递归函数 php

python - Django模板-p标签无故关闭

python - 如何使用 gluon-cv model_zoo 并使用 Python 输出到 OpenCV 窗口?

java - 下面的方法调用语句在Java中是什么意思?

java - 为什么我的字符串不接受 null?

python - 替换数据帧列中的整数 w/'Y'

python - 从嵌套字典中删除值