字典到自定义字符串格式

时间:2016-12-06 22:40:10

标签: string python-3.x dictionary formatting

是的,我有一本像这样的词典:

my_dict = {'BAM': (1.985, 1.919), 'PLN': (4.509, 4.361),'SEK': (9.929, 9.609), 'CZK': (27.544, 26.544), 'NOK': (9.2471, 8.9071), 'AUD': (1.4444, 1.4004), 'HUF': (315.89, 307.09), 'GBP': (0.8639, 0.8399), 'HRK': (7.6508, 7.4208), 'RUB': (71.9393, 66.5393), 'USD': (1.0748, 1.0508), 'MKD': (62.11, 60.29), 'CHF': (1.0942, 1.0602), 'JPY': (121.83, 118.03), 'BGN': (1.979, 1.925), 'RSD': (124.94, 121.14), 'DKK': (7.5521, 7.3281), 'CAD': (1.4528, 1.4048)}

我需要写一个函数(my_dict,[“GBP”,“USD”,“RUB”,“HRK”,“HUF”]),它会返回:

GBP......0.8639......0.8399 USD......1.0748......1.0508 RUB.....71.9393.....66.5393 HRK......7.6508......7.4208 HUF....315.8900....307.0900

我们正在学习如何格式化字符串,我不知道如何处理它。任何帮助,将不胜感激。它需要像这样格式化,包含所有点和内容(在GBP之前没有空格)。

1 个答案:

答案 0 :(得分:1)

你要问的最简单的方法之一就是使用a list comprehension

def my_function(dict, list):
    return ["{0}......{1}......{2}".format(item, dict[item][0], dict[item][1])
            for item in list
            if item in dict]

my_function将返回currency......value......value个项目列表。实际上,您甚至不需要创建函数:

strings = ["{0}......{1}......{2}".format(item, dict[item][0], dict[item][1])
           for item in list
           if item in dict]

但是,如果您不想使用列表推导,则相同的功能可能如下所示:

def my_function(dict, list):
    strings = []
    for item in list:
        if item in dict:
            strings.append("{0}......{1}......{2}".format(item, dict[item][0], dict[item][1]))

    return strings