gpt4 book ai didi

python - 列表理解中带有浮点格式的 f 字符串

转载 作者:行者123 更新时间:2023-12-03 20:26:33 25 4
gpt4 key购买 nike

[f'str']最近在python 3.6中引入了字符串格式。 link .我正在尝试比较 .format()f'{expr}方法。

 f ' <text> { <expression> <optional !s, !r, or !a> <optional : format specifier> } <text> ... '

以下是将华氏温度转换为摄氏温度的列表推导式。

使用 .format()方法将结果作为浮点数打印到两个小数点并添加字符串Celsius:
Fahrenheit = [32, 60, 102]

F_to_C = ['{:.2f} Celsius'.format((x - 32) * (5/9)) for x in Fahrenheit]

print(F_to_C)

# output ['0.00 Celsius', '15.56 Celsius', '38.89 Celsius']

我正在尝试使用 f'{expr} 复制上述内容方法:
print(f'{[((x - 32) * (5/9)) for x in Fahrenheit]}')  # This prints the float numbers without formatting 

# output: [0.0, 15.555555555555557, 38.88888888888889]
# need instead: ['0.00 Celsius', '15.56 Celsius', '38.89 Celsius']

格式化 f'str' 中的浮点数可以实现:
n = 10

print(f'{n:.2f} Celsius') # prints 10.00 Celsius

试图将其实现到列表理解中:
print(f'{[((x - 32) * (5/9)) for x in Fahrenheit]:.2f}') # This will produce a TypeError: unsupported format string passed to list.__format__

是否可以使用 .format() 获得与上述相同的输出?使用方法 f'str' ?

谢谢你。

最佳答案

你需要把 f-string 放在理解中:

[f'{((x - 32) * (5/9)):.2f} Celsius' for x in Fahrenheit]
# ['0.00 Celsius', '15.56 Celsius', '38.89 Celsius']

关于python - 列表理解中带有浮点格式的 f 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48255952/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com