Python 将带有*args的命名大括号的字符串格式化会引发键错误

Python 将带有*args的命名大括号的字符串格式化会引发键错误,python,string,python-3.x,Python,String,Python 3.x,我有一个字符串:my_str='a pi{ece}of t{ext}' 这些参数:args=['ece','ext'] 调用时:>>my_str.format(*args) 它给了我:KeyError'ece' 有什么需要帮忙的吗?我想你要找的是fstring。Fstring被添加到python 3.6中 hello = "Hello" person = "Jimmy" args = [hello, person] greeting = f"{args[0]}, {args[1]}" prin

我有一个字符串:
my_str='a pi{ece}of t{ext}'

这些参数:
args=['ece','ext']

调用时:
>>my_str.format(*args)

它给了我:
KeyError'ece'


有什么需要帮忙的吗?

我想你要找的是fstring。Fstring被添加到python 3.6中

hello = "Hello"
person = "Jimmy"

args = [hello, person]
greeting = f"{args[0]}, {args[1]}"
print(greeting)
如果确实要使用.format()

请用谷歌搜索fstring和.format()


Fstring通常更快

您希望它做什么?为什么要使用命名占位符并传递位置参数?我被迫以这种方式实现它。不太可能同时使用*args和命名占位符。如果我们有更多的上下文,我们可能会告诉您实际应该做什么。此
打印(my_str.format(**dict(zip(args,args)))
将打印您想要的内容。想一想为什么。另一个更简单:
't{}.format(*args)
的pi{}。也许这会有帮助:。。或者:格式化程序访问
args['ece']
。你自己在口译员那里试试这个。
hello = "Hello"
person = "Jimmy"

args = [hello, person]
greeting = "{}, {}".format(*args)
print(greeting)
hello = "Hello"
person = "Jimmy"

args = [hello, person]
greeting = "{first}, {second}".format(first=args[0], second=args[1])
print(greeting)