如何将听写理解包含在一个fstring中?

2024-09-28 17:23:40 发布

您现在位置:Python中文网/ 问答频道 /正文

有没有办法在一个fstring中使用dict理解?情况如下:

a = ['a', 'b', 'c', 'd']
list_comprehension = [v for v in a]
my_f_string = f"dict comprehension {v:None for v in a}"

我不想使用格式插值("{}".format(dict_comprehension))。我想使用最具python风格的方式将列表理解包含在用于记录数据的fstring中


Tags: innoneformatforstring风格my格式
3条回答

在这种情况下,我更喜欢dict.fromkeys

my_f_string = f"dict comprehension {dict.fromkeys(a)}"

更短更优雅:)

现在:

print(my_f_string)

输出:

dict comprehension {'a': None, 'b': None, 'c': None, 'd': None}

是的,当然有。您只需要将理解包装在括号( )中,因为两个连续的{被解释为文字"{"字符串

a = ['a', 'b', 'c', 'd']
list_comprehension = [v for v in a]

这项工作:

my_f_string = f"dict comprehension {({v:None for v in a})}"
print(my_f_string)

Output:

dict comprehension {'a': None, 'b': None, 'c': None, 'd': None}

但是,这不起作用(Stack Overflow的语法高亮显示也有助于显示):

my_f_string = f"dict comprehension {{v:None for v in a}}"
print(my_f_string)

Output:

dict comprehension {v:None for v in a}

你想做的事情可以简单地按如下方式完成

dict_comp = {v:None for v in a}
my_f_string = f"dict comprehension {dict_comp}" 

或者,如果你真的想在f字串中使用dict理解,那么你必须在另一个大括号中放置{v:None for v in a},并在{v:None for v in a}前后加上一个空格

my_f_string = f"dict comprehension { {v:None for v in a} }"

相关问题 更多 >