Python字符串替换字典:跳过键和离开格式化程序

时间:2012-12-17 03:34:53

标签: python string string-formatting string-substitution

我是一个字符串替代品,它带有一些值,并且想知道是否可以跳过一个键并将其保留在那里,而不是用空格填充它?

s='%(name)s has a %(animal)s that is %(animal_age)s years old'

#skip the animal value
s = s % {'name': 'Dolly', 'animal': 'bird'}#, 'animal_age': 10}

print s

预期产出:

Dolly has a bird that is %(animal_age)s years old

1 个答案:

答案 0 :(得分:2)

您可以在字符串中使用两个%%来跳过字符串格式化。:

In [169]: s='%(name)s has a %(animal)s that is %%(animal_age)s years old'

In [170]: s % {'name': 'Dolly', 'animal': 'bird', 'animal_age': 10}

Out[170]: 'Dolly has a bird that is %(animal_age)s years old'

或使用string.format()

In [172]: s='{name} has a {animal} that is %(animal_age)s years old'

In [173]: dic = {'animal': 'bird', 'animal_age': 10, 'name': 'Dolly'}

In [174]: s.format(**dic)
Out[174]: 'Dolly has a bird that is %(animal_age)s years old'