-1

如何在字典类型上使用 str.format()?

例如:

>>> a = 'zxv'
>>>
>>> dic = {'a' : 'val = abc', 'b' : 'val = {0}', 'c' : 'val = {0}'}.format(a)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'dict' object has no attribute 'format'

< 这给出了一个错误。

>>> dic = {'a' : 'val = abc', 'b' : 'val = {0}'.format(a), 'c' : '{0}'}
>>> dic
{'a': 'val = abc', 'c': '{0}', 'b': 'val = zxv'}

<这种变化使它可行,但它会导致遗漏。

这是不支持的格式吗?帮助请。

我想使用 format() 一次输入多个值。我期望可用性类似于以下内容:

>>> a = "hi"
>>> text = ('{0} {0}').format(a)
>>> text
'hi hi'

而且我仍在使用python 2.7。

4

2 回答 2

1

试试这个:

dic = {'a': 'val = abc', 'b': f'val = {a}', 'c': 'val = {}'}

PS:它也可以正常工作。 dic = {'a': 'val = abc', 'b': 'val = {}'.format(a), 'c': 'val = {}'}

于 2021-01-05T09:08:57.837 回答
0

format()是字符串方法,而不是字典方法。

您可以使用循环在字典中的每个值上调用它。

dic = {'a' : 'val = abc', 'b' : 'val = {}', 'c' : 'val = {}'}
for key, val in dic.items():
    if `{}` in val:
        dic[key] = val.format(a)
于 2021-01-05T09:07:34.283 回答