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)