gpt4 book ai didi

python - 如何用相同的代码满足不同的字符串格式化场景?

转载 作者:太空宇宙 更新时间:2023-11-03 13:55:54 27 4
gpt4 key购买 nike

我有一个包含占位符文本字符串和关联值的输入文件。我并不真正提前知道哪些是即将到来的,并且很好奇是否有一个代码块可以满足以下所有占位符字符串和提供的值的组合。

本质上我想要这个:

examples = [
{"text": "There are {} bagels in a bakers dozen.", "values": 13},
{"text": "My favorite bagels are {} and {}.", "values": ["cinnamon raisin", "maple"]},
{"text": "I have not had a pop tart in 14 {}", "values": "years"}
]

for single_example in examples:
print(single_example['text'].format(single_example['values']))

但是 format(single_example['values']) 不适用于第二个 text。相反,我可以执行 format(*single_example['values']) 以允许第二个示例工作,但它会以错误 IndexError: tuple index out of range 第三个是对字符串进行切片。

我认为我需要将所有内容都放入一个列表中,以便 format(*single_example['values']) 能够全面发挥作用,但我一直在寻找一种适用于上述情况的方法.

这对我有用,但我觉得可能有更精简的方法。

for single_example in examples:
if isinstance(single_example['values'], list):
values = single_example['values']
else:
lst = []
lst.append(str(single_example['values']))
values = lst
print(single_example['text'].format(*values))

最佳答案

为什么不使用 try except 子句:

for single_example in examples:
try:
print(single_example['text'].format(single_example['values']))
except:
print(single_example['text'].format(*single_example['values']))

输出:

There are 13 bagels in a bakers dozen.
My favorite bagels are cinnamon raisin and maple.
I have not had a pop tart in 14 years

关于python - 如何用相同的代码满足不同的字符串格式化场景?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55672028/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com