嵌套的 f 弦?
Nested f-strings?
所以我有一些复杂的东西,但这是一个简单的版本:
i, j = 1, 2
a_1, a_2 = 1, 2
f"{a_f'{i}'} + {a_f'{j}'} = 3" == '1 + 2 = 3'
我想要左边这样的表达式给出右边这样的结果,我这里写的给错了。
这可以使用嵌套的 f 字符串来完成吗?
您是否试图通过创建字符串来动态获取变量?
如果是这样并且它不是 class 属性,我头上唯一的解决方案是使用全局变量或局部变量(如下所示),但不推荐:
f'{globals()[f"a_{i}"]} + {globals()[f"a_{j}"]} = 3' == '1 + 2 = 3'
有关详细信息,请参阅 How to get the value of a variable given its name in a string?
不支持嵌套的 f 字符串。可以创建可变变量来实现同样的事情:
i, j = 1, 2
a_1, a_2 = 1, 2
v1 = globals()[f"a_{i}"]
v2 = globals()[f"a_{j}"]
f"{v1} + {v2} = 3" == '1 + 2 = 3'
另请参阅:How do I create variable variables?
没有上下文,这似乎是一个 XY problem. You should probably use a dict or list instead of variables, based on How do I create variable variables? 例如,
dict
>>> i, j = 1, 2
>>> a = {1: 1, 2: 2}
>>> f"{a[i]} + {a[j]} = 3"
'1 + 2 = 3'
列表
>>> i, j = 0, 1 # list indexing starts at 0
>>> a = [1, 2]
>>> f"{a[i]} + {a[j]} = 3"
'1 + 2 = 3'
所以我有一些复杂的东西,但这是一个简单的版本:
i, j = 1, 2
a_1, a_2 = 1, 2
f"{a_f'{i}'} + {a_f'{j}'} = 3" == '1 + 2 = 3'
我想要左边这样的表达式给出右边这样的结果,我这里写的给错了。
这可以使用嵌套的 f 字符串来完成吗?
您是否试图通过创建字符串来动态获取变量? 如果是这样并且它不是 class 属性,我头上唯一的解决方案是使用全局变量或局部变量(如下所示),但不推荐:
f'{globals()[f"a_{i}"]} + {globals()[f"a_{j}"]} = 3' == '1 + 2 = 3'
有关详细信息,请参阅 How to get the value of a variable given its name in a string?
不支持嵌套的 f 字符串。可以创建可变变量来实现同样的事情:
i, j = 1, 2
a_1, a_2 = 1, 2
v1 = globals()[f"a_{i}"]
v2 = globals()[f"a_{j}"]
f"{v1} + {v2} = 3" == '1 + 2 = 3'
另请参阅:How do I create variable variables?
没有上下文,这似乎是一个 XY problem. You should probably use a dict or list instead of variables, based on How do I create variable variables? 例如,
dict
>>> i, j = 1, 2
>>> a = {1: 1, 2: 2}
>>> f"{a[i]} + {a[j]} = 3"
'1 + 2 = 3'
列表
>>> i, j = 0, 1 # list indexing starts at 0
>>> a = [1, 2]
>>> f"{a[i]} + {a[j]} = 3"
'1 + 2 = 3'