Как превратить форматированную строку, используя распаковку списка в f-строки? - PullRequest
1 голос
/ 26 сентября 2019

Я хочу превратить мои строки в f-строки, и я нашел такую ​​строку:

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

Как я могу превратить ее в хорошую строку?

Теперь яЯ использую лямбду и вызываю ее как в {}

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

Но я все еще ищу способ распаковать и разослать оба {} в строке

Ответы [ 2 ]

1 голос
/ 26 сентября 2019

вы можете попробовать:

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=' : ')
0 голосов
/ 26 сентября 2019

Один из способов сделать это - поместить результаты ваших вычислений в список и использовать его для печати:

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-строке.

...