【问题标题】:Dictionary to custom string format字典到自定义字符串格式
【发布时间】:2016-12-06 22:40:10
【问题描述】:

对,我有一本这样的字典:

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

我们正在学习如何格式化字符串,但我不知道如何处理这个问题。任何帮助,将不胜感激。它需要完全像这样格式化,包含所有的点和东西(英镑之前没有空格)。

【问题讨论】:

    标签: string python-3.x dictionary formatting


    【解决方案1】:

    执行您所要求的操作的一种更简单的方法是使用 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
    

    【讨论】:

      猜你喜欢
      • 2012-01-21
      • 2012-08-28
      • 1970-01-01
      • 2014-04-10
      • 2013-08-20
      • 1970-01-01
      • 1970-01-01
      • 2018-11-22
      • 2014-07-09
      相关资源
      最近更新 更多