Хавин и заказанный дикт не важны для вашей задачи, достаточно простого. Упорядоченный диктовка важна, если вы хотите получить ключи в том же порядке, в котором вы их вставили в диктовку.
Вам просто нужны списки двух рассматриваемых ключей: zip (...) их списки значений для пар и распечатка текста-замены:
# simple dict
od = {'time': ['1', '2', '3', '4', '5', '10', '15', '30', '60', '90'],
'uom': ['kpa', 'kpa', 'kpa', 'kpa', 'kpa', 'kpa', 'kpa', 'kpa', 'kpa', 'kpa']}
# your text
texts = ['Given Device unit of measure is set to value "<uom>"\n', 'And Device is set to value "<time>"\n']
someList = []
# zip the correlating uom/time/ppm together and iterate them
for tup in zip(od["uom"],od["time"]):
# create a partial list for this iteration and replace the placeholders
part = [texts[0].replace("<uom>",tup[0]), texts[1].replace("<time>",tup[1])]
print(part)
# for good measure: stuff into full list
someList.append(part)
# print full list
print(someList)
Выход:
['Given Device unit of measure is set to value "kpa"\n', 'And Device is set to value "1"\n']
['Given Device unit of measure is set to value "kpa"\n', 'And Device is set to value "2"\n']
['Given Device unit of measure is set to value "kpa"\n', 'And Device is set to value "3"\n']
['Given Device unit of measure is set to value "kpa"\n', 'And Device is set to value "4"\n']
['Given Device unit of measure is set to value "kpa"\n', 'And Device is set to value "5"\n']
['Given Device unit of measure is set to value "kpa"\n', 'And Device is set to value "10"\n']
['Given Device unit of measure is set to value "kpa"\n', 'And Device is set to value "15"\n']
['Given Device unit of measure is set to value "kpa"\n', 'And Device is set to value "30"\n']
['Given Device unit of measure is set to value "kpa"\n', 'And Device is set to value "60"\n']
['Given Device unit of measure is set to value "kpa"\n', 'And Device is set to value "90"\n']
[['Given Device unit of measure is set to value "kpa"\n', 'And Device is set to value "1"\n'],
['Given Device unit of measure is set to value "kpa"\n', 'And Device is set to value "2"\n'],
['Given Device unit of measure is set to value "kpa"\n', 'And Device is set to value "3"\n'],
['Given Device unit of measure is set to value "kpa"\n', 'And Device is set to value "4"\n'],
['Given Device unit of measure is set to value "kpa"\n', 'And Device is set to value "5"\n'],
['Given Device unit of measure is set to value "kpa"\n', 'And Device is set to value "10"\n'],
['Given Device unit of measure is set to value "kpa"\n', 'And Device is set to value "15"\n'],
['Given Device unit of measure is set to value "kpa"\n', 'And Device is set to value "30"\n'],
['Given Device unit of measure is set to value "kpa"\n', 'And Device is set to value "60"\n'],
['Given Device unit of measure is set to value "kpa"\n', 'And Device is set to value "90"\n']
]
Sidenote: ваш вывод не совсем возможен, так как вам нужно переключить '
на '"', если вы используете их внутри строки - или наоборот. Вы можете иметь
["some text 'some other' things"] # or
['some text "some other" things'] # or
# you mask them out by
['some text \'some other\' things']
Если у вас нет ключей впереди, вы можете использовать dict.keys (), чтобы получить их. Вот так:
from collections import OrderedDict
od = OrderedDict([('time', ['1', '2', '3', '4', '5', '10', '15', '30', '60', '90']),
('uom', ['kpa', 'kpa', 'kpa', 'kpa', 'kpa', 'kpa', 'kpa', 'kpa', 'kpa', 'kpa']),
('ppm', ['009','019','029','039','049','059','069','079','089','099'])])
# your text
texts = ['Given Device unit of measure is set to value "<uom>"\n', 'And Device <ppm> is set to value "<time>"\n']
# zip the correlating uom/time together and iterate them
part = [texts[0], texts[1]] # templated text
keys = list(od.keys()) # all the keys
for tup in zip(*od.values()): # all the value tuples (in key order)
for idx,val in enumerate(tup):
corrKey = '<'+keys[idx]+'>' # get corresponding key as replace text
part[0] = part[0].replace(corrKey,val) # replace it in both parts
part[1] = part[1].replace(corrKey,val) # of your text
print(part)
# reset to template text
part = [texts[0], texts[1]]
Выход:
['Given Device unit of measure is set to value "kpa"\n', 'And Device 009 is set to value "1"\n']
['Given Device unit of measure is set to value "kpa"\n', 'And Device 019 is set to value "2"\n']
['Given Device unit of measure is set to value "kpa"\n', 'And Device 029 is set to value "3"\n']
['Given Device unit of measure is set to value "kpa"\n', 'And Device 039 is set to value "4"\n']
['Given Device unit of measure is set to value "kpa"\n', 'And Device 049 is set to value "5"\n']
['Given Device unit of measure is set to value "kpa"\n', 'And Device 059 is set to value "10"\n']
['Given Device unit of measure is set to value "kpa"\n', 'And Device 069 is set to value "15"\n']
['Given Device unit of measure is set to value "kpa"\n', 'And Device 079 is set to value "30"\n']
['Given Device unit of measure is set to value "kpa"\n', 'And Device 089 is set to value "60"\n']
['Given Device unit of measure is set to value "kpa"\n', 'And Device 099 is set to value "90"\n']