У меня есть входные данные с двумя индексами слов и заметками.
indexes={'Laptops':'1','Mob':'2','Cars':'3','Bus':4}
Notes={
'indexs':[1,3],
'Laptops':[
"dell","asus","acer"
],
'Mob':[
"mi","realme"
],
'Bus':[
"aB"
],
'Cars':["Not found"
]
}
Создал генератор предложений
def SenGen(alpha,beta):
for a,b in alpha.items():
for c,d in beta.items():
if c in a:
print(f"{a} are ", end="")
for i, e in enumerate(b):
if i == len(b)-1:
print(f"and {e}. ", end="")
elif i == len(d)-2:
print(f"{e} ", end="")
else:
print(f"{e}, ", end="")
с помощью SenGen, я создал предложение, которое показано ниже.
SenGen(Notes,indexes)
вывод
Laptops are dell, asus, and acer. Mob are mi, and realme. Bus are and aB. Cars are and not found.
в приведенном выше выводе в ноутбуках У меня есть 3 слова, разделенных 'и' , ** В mob i есть два слова, разделенные 'и' **. В то время как в шине у меня только одно слово. но 'and' перед aB , а в случае его тех же автомобилей я не нашел .
желаемый результат должен быть таким, как показано ниже.
вывод:
Laptops are dell, asus, and acer. Mob are mi, and realme. Bus are aB. Cars are not found.
Я выполнил ряд случаев, чтобы исправить эту проблему, показанную ниже.
1.if i == len(b)==1:
print(f" is {e} ", end="")
2.if i == len(b)==0:
print(f" is {e} ", end="")
3.if i == len(b)<1:
print(f" is {e} ", end="")
4.if i == len(b)>1:
print(f" is {e} ", end="")
, но я не смог ее решить.