我希望能够在format()括号内使用变量,以便在函数中对其进行参数化。在下面提供示例:
sample_str = 'sample_str_{nvars}'
nvars_test = 'apple'
sample_str.format(nvars = nvars_test) #Successful Result: ''sample_str_apple''
但是以下方法不起作用-
sample_str = 'sample_str_{nvars}'
nvars_test_2 = 'nvars = apple'
sample_str.format(nvars_test_2) # KeyError: 'nvars'
有人知道怎么做吗?谢谢。
答案 0 :(得分:1)
非常感谢您的指导。我做了更多的搜索。对于可能遇到相同问题的任何人,请在此处查看示例:https://pyformat.info
sample_str = 'sample_str_{nvars}'
nvars_test_2 = {'nvars':'apple'}
sample_str.format(**nvars_test_2) #Successful Result: ''sample_str_apple''
答案 1 :(得分:0)
首先,我建议您查看string format示例。
您的第一个示例按预期方式工作。从文档中,您实际上可以命名要传递给{}
的事物,然后为str.format()
传递同名变量:
'Coordinates: {latitude}, {longitude}'.format(latitude='37.24N', longitude='-115.81W')
# returns 'Coordinates: 37.24N, -115.81W'
您的第二个示例不起作用,因为您没有在nvars
中传递名为str.format()
的变量-您正在传递字符串:'nvars = apple'
。
sample_str = 'sample_str_{nvars}'
nvars_test_2 = 'nvars = apple'
sample_str.format(nvars_test_2) # KeyError: 'nvars'
(我认为)不命名那些花括号的参数更为常见-至少更容易阅读。
print('sample_str_{}'.format("apple"))
应该返回'sample_str_apple'
。
答案 2 :(得分:0)
如果您使用的是Python 3.6,则还可以访问Python的格式化字符串文字。
FROM imagename:2.5
请注意,文字期望变量已经存在。否则会出现错误。
>>> greeting = 'hello'
>>> name = 'Jane'
>>> f'{greeting} {name}'
'hello Jane'