【问题标题】:How do I generate a python dictionary comphrension that generates keys as a range function of the values?如何生成一个python字典comphrension,将键生成为值的范围函数?
【发布时间】:2019-07-14 14:31:03
【问题描述】:

我可以生成字典理解

{str(i):0 for i in range(5)}

{'0': 0, '1': 0, '2': 0, '3': 0, '4': 0}

如何修改它以使结果字典如下:

{'0-1': 0, '2-3': 0, '4-5': 0, '6-7': 0, '8-9': 0}

我已经取得了一些你所期望的初步成功

bins = {i*2:0 for i in range(5)}

但过去我不知所措。

【问题讨论】:

    标签: python python-3.x dictionary-comprehension


    【解决方案1】:

    这段代码将返回所需的输出:

    {'{}-{}'.format(i, i+1): 0 for i in range(0, 2 * 5, 2)}
    

    【讨论】:

    • Python 3.6+,f-strings 可以使用:{'{}-{}'.format(i, i+1) --> f'{i}-{i+1}'
    【解决方案2】:
    {str(2*i)+'-'+str(2*i+1):0 for i in range(5)}
    

    【讨论】:

      【解决方案3】:

      试试这个,

      In [2]: {f'{i}-{i+1}':0 for i in range(0, 10, 2)}
      Out[2]: {'0-1': 0, '2-3': 0, '4-5': 0, '6-7': 0, '8-9': 0}
      

      这个range(0, 10, 2) 将返回0, 2, 4, 6, 8。从 0 到 10 由两次开始。所以i的值总是0, 2, 4, 6, 8,那么i+1就是1,3,5,7,9

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-04-28
        • 2021-06-04
        • 1970-01-01
        • 1970-01-01
        • 2021-12-10
        • 2020-06-26
        • 2014-02-20
        相关资源
        最近更新 更多