迭代列表并将该值用于字典键[重复]

Posted

技术标签:

【中文标题】迭代列表并将该值用于字典键[重复]【英文标题】:iterate list and use that value for dictionary key [duplicate] 【发布时间】:2017-02-25 13:38:50 【问题描述】:

我的字典看起来有些像这样。

allCurrencies = 
    'AUD': ['Australian Dollar', 'au'],
    'GBP': ['British Pound', 'gb'],
    'CAD': ['Canadian Dollar', 'ca'],
    'INR': ['Indian Rupee', 'in'],
    'JPY': ['Japanese Yen', 'jp'],
    'RUB': ['Russian Ruble', 'ru'],
    'SGD': ['Singapore Dollar', 'sg'],
    'CHF': ['Swiss Franc', 'ch'],
    'USD': ['US Dollar', 'us']

我的数组包含这个:

commonCurrencies = ['USD', 'EUR', 'GBP', 'JPY']

我的主要目标是迭代 commonCurrencies 并将其用作字典 allCurrencies 的键。

我的 django 模板目前如下所示:

<tr>
    % for sym in commonCurrencies %
        <td>allCurrencies.sym.0<td>
    % endfor %
</tr>

但它似乎不起作用。我究竟做错了什么。谢谢

【问题讨论】:

你见过this answer 【参考方案1】:

AFAIK,没有内置过滤器,标签允许您从字典中动态获取项目。您最好过滤视图中的值,并将其传递给模板。 Otherwise, you need to make custom template tag to get value dictionary value dynamically.

>>> allCurrencies = 
...     'AUD': ['Australian Dollar', 'au'],
...     'GBP': ['British Pound', 'gb'],
...     'CAD': ['Canadian Dollar', 'ca'],
...     'INR': ['Indian Rupee', 'in'],
...     'JPY': ['Japanese Yen', 'jp'],
...     'RUB': ['Russian Ruble', 'ru'],
...     'SGD': ['Singapore Dollar', 'sg'],
...     'CHF': ['Swiss Franc', 'ch'],
...     'USD': ['US Dollar', 'us']
... 
>>>
>>> commonCurrencies = ['USD', 'EUR', 'GBP', 'JPY']
>>>
>>> currencies = cur: allCurrencies[cur] for cur in commonCurrencies
                  if cur in allCurrencies
>>>
>>> currencies
'JPY': ['Japanese Yen', 'jp'],
 'USD': ['US Dollar', 'us'],
 'GBP': ['British Pound', 'gb']

顺便说一句,allCurrencies 字典中没有 EUR 条目。

【讨论】:

非常感谢

以上是关于迭代列表并将该值用于字典键[重复]的主要内容,如果未能解决你的问题,请参考以下文章

在字典列表中查找重复值

枚举字典迭代键和值[重复]

当我在循环中添加到字典时有新键时创建一个新列表

将字典列表写入 CSV Python

迭代与Python中的列表对应的字典键值

迭代列表中的多个字典[重复]