【问题标题】:Turning Key, Value pairs from a Dictionary into strings [closed]将字典中的键、值对转换为字符串 [关闭]
【发布时间】:2019-10-30 13:25:30
【问题描述】:

我有一个字典和一个字符串模板,我需要用字典中的键、值对填充它们。

例如,如果字典是 {'a':'1', 'b':'2'} 那么我需要将字符串模板(键在值中)读作:“a 在 1”和"b 在 2"

我需要遍历字典并将每个键、值对应用到字符串模板中。

【问题讨论】:

    标签: python dictionary


    【解决方案1】:

    给你。只需迭代键、值对并格式化您的模板。

    mydict = {'a':'1', 'b':'2'}
    
    for key, value in mydict.items():
        print('{} is in {}'.format(key, value))
    
    

    输出:

    a is in 1
    b is in 2
    

    如果您想获取格式化字符串列表,请执行以下操作:

    mylist = ['{} is in {}'.format(key, value) for key, value in mydict.items()]
    

    mylist 将是 ['a is in 1', 'b is in 2']

    【讨论】:

      【解决方案2】:

      您可以使用以下功能:

      def fill(d, template):
          s = ""
          for k, v in d.items():
              s += f"{k} {template} {v}\n"
          return s[:-1]
      
      >>> d = {'a':'1', 'b':'2'}
      >>> print(fill(d, 'is in'))
      a is in 1
      b is in 2
      

      请注意,这只会在 python 3.6+ 中保留顺序。

      【讨论】:

        【解决方案3】:
        dictionary = {'a':'1', 'b':'2'}
        template = '{} is in {}'
        for key, value in dictionary.items():
            print(template.format(key, value))
        

        会成功的

        【讨论】:

          【解决方案4】:

          你可以喜欢并使用itertools.starmap

          from itertools import starmap
          
          d = {'a': '1', 'b': '2'} 
          list(starmap('{} is in {}'.format, d.items()))
          # ['a is in 1', 'b is in 2']
          

          【讨论】:

            【解决方案5】:

            您还可以在 python 3.5+ 中使用 f 字符串:

            d = {'a': '1', 'b': '2'}
            
            print('\n'.join(f'{k} is in {v}' for k, v in d.items()))
            a is in 1
            b is in 2
            

            【讨论】:

            • 这样,所有的值都应该是string
            • @MohammadMasoumi f-strings 具有与 str.format 相同的灵活性
            猜你喜欢
            • 2020-10-06
            • 2018-02-23
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2017-02-11
            • 2023-03-07
            • 2019-02-11
            相关资源
            最近更新 更多