我有一个字典和一个字符串模板,需要用字典中的键,值对来填充。
例如,如果字典为{'a':'1','b':'2'},则我需要将字符串模板(键在值中)读取为:“ a在1中”,并且“ b在2中”
我需要遍历字典并将每个键,值对应用到字符串模板中。
答案 0 :(得分:2)
您在这里。只需迭代键,值对并格式化模板即可。
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']
。
答案 1 :(得分:1)
您可以使用以下功能:
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+中的顺序。
答案 2 :(得分:1)
dictionary = {'a':'1', 'b':'2'}
template = '{} is in {}'
for key, value in dictionary.items():
print(template.format(key, value))
会成功的
答案 3 :(得分:1)
您可能会幻想并使用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']
答案 4 :(得分:0)
对于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