如何使用列表解包转换为f字符串格式的字符串?

时间:2019-09-26 10:38:03

标签: python f-string

我想将我的弦变成f弦,然后发现这样的字符串:

print('{} : {}'.format(*[time.asctime(time.localtime(t)) for t in (time.time(), old_time)]))

如何将其转换为漂亮的字符串?

现在我正在使用lambda并同时在{}中调用它

print(f'{my_lambda(time.time()} : {my_lambda(old_time}'

但是我仍然在寻找一种方法来解包并分发给字符串中的{}

2 个答案:

答案 0 :(得分:1)

您可以尝试:

my_l = [time.asctime(time.localtime(t)) for t in (time.time(), old_time)]

f"{' : '.join(my_l)}"

如果您不想添加任何额外的消息,则可以使用:

' : '.join(my_l)

此外,您可以使用:

print(*my_l, sep=' : ')

答案 1 :(得分:0)

一种实现方法是将计算结果放入列表中,并将其用于打印:

times = [ time.asctime(time.localtime(t))
          for t in (time.time(), old_time) ]
print(f"{time[0]} : {time[1]}")

或者,更具体地说:

now, then = [ time.asctime(time.localtime(t))
              for t in (time.time(), old_time) ]
print(f"{now} : {then}")

通过这种方式,您可以避免代码加倍(两个值都使用一个代码),甚至在f字符串中都包含语音名称。