如何将此写为1行返回Python

时间:2015-04-14 01:56:42

标签: python string for-loop

我的教授指出,这段代码可以浓缩为一行。我不知道怎么做,即使我脑子里有一个骨架。

def dict_as_str(d : {None:None}, key : callable=None, reverse : bool=False) -> str:
    tempStr = ''
    for key in sorted(d.keys(), key=key, reverse = reverse):
        tempStr += "  " + str(key) +" -> " + str(d[key]) + "\n"
    return tempStr

1 个答案:

答案 0 :(得分:3)

str.join和生成器表达式将执行此操作:

return "".join("  {} -> {}\n".format(key, d[key])
               for key in sorted(d, key=key, reverse=reverse))