【发布时间】:2019-10-30 13:25:30
【问题描述】:
我有一个字典和一个字符串模板,我需要用字典中的键、值对填充它们。
例如,如果字典是 {'a':'1', 'b':'2'} 那么我需要将字符串模板(键在值中)读作:“a 在 1”和"b 在 2"
我需要遍历字典并将每个键、值对应用到字符串模板中。
【问题讨论】:
标签: python dictionary
我有一个字典和一个字符串模板,我需要用字典中的键、值对填充它们。
例如,如果字典是 {'a':'1', 'b':'2'} 那么我需要将字符串模板(键在值中)读作:“a 在 1”和"b 在 2"
我需要遍历字典并将每个键、值对应用到字符串模板中。
【问题讨论】:
标签: python dictionary
给你。只需迭代键、值对并格式化您的模板。
mydict = {'a':'1', 'b':'2'}
for key, value in mydict.items():
print('{} is in {}'.format(key, value))
输出:
a is in 1
b is in 2
如果您想获取格式化字符串列表,请执行以下操作:
mylist = ['{} is in {}'.format(key, value) for key, value in mydict.items()]
mylist 将是 ['a is in 1', 'b is in 2']。
【讨论】:
您可以使用以下功能:
def fill(d, template):
s = ""
for k, v in d.items():
s += f"{k} {template} {v}\n"
return s[:-1]
>>> d = {'a':'1', 'b':'2'}
>>> print(fill(d, 'is in'))
a is in 1
b is in 2
请注意,这只会在 python 3.6+ 中保留顺序。
【讨论】:
dictionary = {'a':'1', 'b':'2'}
template = '{} is in {}'
for key, value in dictionary.items():
print(template.format(key, value))
会成功的
【讨论】:
你可以喜欢并使用itertools.starmap:
from itertools import starmap
d = {'a': '1', 'b': '2'}
list(starmap('{} is in {}'.format, d.items()))
# ['a is in 1', 'b is in 2']
【讨论】:
您还可以在 python 3.5+ 中使用 f 字符串:
d = {'a': '1', 'b': '2'}
print('\n'.join(f'{k} is in {v}' for k, v in d.items()))
a is in 1
b is in 2
【讨论】:
string
str.format 相同的灵活性