为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

繁花不似锦 2022-06-07 17:58:14
我想把我的字符串变成 f-strings,我发现了一个这样的字符串:print('{} : {}'.format(*[time.asctime(time.localtime(t)) for t in (time.time(), old_time)]))我怎样才能把它变成一个漂亮的 fstring?现在我正在使用 lambda 并在两者中调用它{}print(f'{my_lambda(time.time()} : {my_lambda(old_time}'但我仍然在寻找一种方法来解压并分发到{}字符串中的两者
查看完整描述

2 回答

?
慕工程0101907

TA贡献1887条经验 获得超5个赞

你可以试试:


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=' : ')


查看完整回答
反对 回复 2022-06-07
?
潇潇雨雨

TA贡献1833条经验 获得超4个赞

一种方法是将计算结果放入列表中并使用它进行打印:


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-string 中有说话的名字。


查看完整回答
反对 回复 2022-06-07
  • 2 回答
  • 0 关注
  • 98 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信