【问题标题】:How to optimize a repetitive string using dictionary comprehension?如何使用字典理解优化重复字符串?
【发布时间】:2019-09-19 17:59:41
【问题描述】:

尝试优化我非常重复的代码以供我自己启迪。

我曾尝试在字典函数中实现 for 循环,但没有成功。有没有更快更高效的写法:

blah = dict({'S1_Cycle1': ['S1/S1_Cycle1', 'S1'],
                             'S1_Cycle2': ['S1/S1_Cycle2', 'S1'],
                             'S1_Cycle3': ['S1/S1_Cycle3', 'S1'],
                             'S1_Cycle4': ['S1/S1_Cycle4', 'S1'],
                             'S1_Cycle5': ['S1/S1_Cycle5', 'S1'],
                             'S1_Cycle6': ['S1/S1_Cycle6', 'S1'],
                             'S1_Cycle7': ['S1/S1_Cycle7', 'S1'],
                             'S1_Cycle8': ['S1/S1_Cycle8', 'S1'],
                             'S1_Cycle9': ['S1/S1_Cycle9', 'S1'],
                             'S1_Cycle10': ['S1/S1_Cycle10', 'S1'],
                             'S1_Cycle11': ['S1/S1_Cycle11', 'S1'],
                             'S1_Cycle12': ['S1/S1_Cycle12', 'S1'],
                             'S1_Cycle13': ['S1/S1_Cycle13', 'S1'],
                             'S1_Cycle14': ['S1/S1_Cycle14', 'S1'],
                             'S1_Cycle15': ['S1/S1_Cycle15', 'S1'],
                             'S1_Cycle16': ['S1/S1_Cycle16', 'S1'],
                             'S1_Cycle17': ['S1/S1_Cycle17', 'S1'],
                             'S1_Cycle18': ['S1/S1_Cycle18', 'S1'],
                             'S1_Cycle19': ['S1/S1_Cycle19', 'S1'],
                             'S1_Cycle20': ['S1/S1_Cycle20', 'S1'],
                             'S1_Cycle21': ['S1/S1_Cycle21', 'S1'],
                             'S1_Cycle22': ['S1/S1_Cycle23', 'S1'],
                             'S1_Cycle23': ['S1/S1_Cycle23', 'S1'],
                             'S2_Cycle1': ['S1/S1_Cycle1', 'S2'],
                             'S2_Cycle2': ['S1/S1_Cycle2', 'S2'],
                             'S2_Cycle3': ['S1/S1_Cycle3', 'S2'],
                             'S2_Cycle4': ['S1/S1_Cycle4', 'S2'],
                             'S2_Cycle5': ['S1/S1_Cycle5', 'S2'],
                             'S2_Cycle6': ['S1/S1_Cycle6', 'S2'],
                             'S2_Cycle7': ['S1/S1_Cycle7', 'S2'],
                             'S2_Cycle8': ['S1/S1_Cycle8', 'S2'],
                             'S2_Cycle9': ['S1/S1_Cycle9', 'S2'],
                             'S2_Cycle10': ['S1/S1_Cycle10', 'S2'],
                             'S2_Cycle11': ['S1/S1_Cycle11', 'S2'],
                             'S2_Cycle12': ['S1/S1_Cycle12', 'S2'],
                             'S2_Cycle13': ['S1/S1_Cycle13', 'S2'],
                             'S2_Cycle14': ['S1/S1_Cycle14', 'S2'],
                             'S2_Cycle15': ['S1/S1_Cycle15', 'S2'],
                             'S2_Cycle16': ['S1/S1_Cycle16', 'S2'],
                             'S2_Cycle17': ['S1/S1_Cycle17', 'S2'],
                             'S2_Cycle18': ['S1/S1_Cycle18', 'S2'],
                             'S2_Cycle19': ['S1/S1_Cycle19', 'S2'],
                             'S2_Cycle20': ['S1/S1_Cycle20', 'S2'],
                             'S2_Cycle21': ['S1/S1_Cycle21', 'S2'],
                             'S2_Cycle22': ['S1/S1_Cycle23', 'S2'],
                             'S2_Cycle23': ['S1/S1_Cycle23', 'S2']
                            })

【问题讨论】:

    标签: python-3.6 dictionary-comprehension


    【解决方案1】:

    使用字典理解:

    {f'S{x}_Cycle{y}': [f'S1/S1_Cycle{y}', f'S{x}'] for x in range(1, 3) for y in range(1, 24)}
    

    哪个输出:

    {'S1_Cycle1': ['S1/S1_Cycle1', 'S1'], 
     'S1_Cycle2': ['S1/S1_Cycle2', 'S1'],
      ...
      ...
     'S2_Cycle22': ['S1/S1_Cycle23', 'S2'],
     'S2_Cycle23': ['S1/S1_Cycle23', 'S2']}
    

    【讨论】:

    • 太棒了!谢谢。只是好奇为什么在字符串之前使用 f ?那是转义字符吗?
    • @user2542058,这是用于格式化字符串。它被称为 f 字符串。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-10
    • 2021-01-04
    • 1970-01-01
    • 1970-01-01
    • 2015-03-31
    • 2012-11-30
    • 2019-12-15
    相关资源
    最近更新 更多