두 개의 목록이 있습니다. 첫 번째 목록의 반복 요소 중 작은 1 개의 큰 것이지만 타임 라인에서 행까지 다양한 가격이 있습니다. 작은 목록Python 목록 콜렉션
예 : 가격의 마지막 번호 인 그것에
> lekilist = ['Амертил таб. п/о 10мг №20'
> 'Амертил таб. п/о 10мг №7'
> 'Афлубин капли д/пр. внутрь ф/кап. 20мл'
> 'Афлубин капли д/пр. внутрь ф/кап. 50мл']
큰 목록 ","(7.15, 7.99, 8.05, ...) :
ls= [АМЕРТИЛ ТАБЛ.П/О, 10МГ, №20;BIOFARM;ПОЛЬША;0;7.15;0
АМЕРТИЛ ТАБЛ.П/О, 10МГ, №20;BIOFARM;ПОЛЬША;0;7.99;00
АМЕРТИЛ ТАБЛ.П/О, 10МГ, №20;BIOFARM;ПОЛЬША;0;8.05;0
АМЕРТИЛ ТАБЛ.П/О, 10МГ, №7;BIOFARM;ПОЛЬША;0;4.07;0
АМЕРТИЛ ТАБЛ.П/О, 10МГ, №7;BIOFARM;ПОЛЬША;0;4.16;0
АФЛУБИН ТАБЛ., №24;RICHARD BITTNER;АВСТРИЯ;0;16.81;0
АФЛУБИН ТАБЛ., №24;RICHARD BITTNER;АВСТРИЯ;0;16.81;0
АФЛУБИН Ф-КАП., КАП.ОР., 20МЛ;RICHARD BITTNER;АВСТРИЯ;0;4.95;0
АФЛУБИН Ф-КАП., КАП.ОР., 20МЛ;RICHARD BITTNER;АВСТРИЯ;0;9.96;0]
작은에서 각 항목에 대한 추가 목록을 작성하는 것이 필요하다 작은 목록 (중요한 요소 : АМЕРТИЛ (name) или (또는) АФЛУБИН (name) или (or) ..., ТАБ. (pills) или КАПС.)의 위치를 식별하는 명확한 이름의 가격 ТАБ.П/О или 캡슐) (코팅 된 정제) Ф-КАП (시럽) ... №20 (정제의 수) или №7 или 20мл (20ml)에 용해
작은 일 :.
import re
ls=[]
for i in f: #aligns the name to a small list
x = re.findall('[А-ЯТАБЛ\.|ТАБЛ\.П\/О|КАПС\.|СПРЕЙ|СИРОП| Ф\-КАП\.\, КАП\.ОР\.|№\]+[\d]+', i)
y = re.sub ('ТАБЛ.', 'ТАБ.', str(x))
z = re.sub('ТАБ.П/О', 'ТАБ. П/О', str(y))
c = re.sub('Ф-КАП., КАП.ОР.', 'КАПЛИ Д/ПР. ВНУТРЬ Ф/КАП.', str(z))
ls.append(c)
#Compare items of the first and second list
lekilist[x].replace(' ', '') in ls[y].replace(' ', '').replace(',', '')
# find the price
ls[10].split('\'')[-4]
내가이 목록을 우회 할 것이라고위한 경우, 문제는 그것이 익숙하지 않은 요소가 발생하면, 그것은 i 번째의 모든 요소를 통해 이동 및만한 어떠한 물체를 인쇄하지 않는 동안에서 루프를 구축 할 수
ing. 모든 우연의 일치가 있었는지 여부에 관계없이 전체 목록을 살펴 보는 것이 필요합니다. 희망에 접근하려는 비참한 시도 :
x = 0; 내 문제에 대한 Y = 0
while y <= len(lsPharm):
if lekilist[x].replace(' ', '') in lsPharm[y].replace(' ', '').replace(',', ''):
o.write(lekilist[x].replace(' ', '') +'\n' + lsPharm[y].replace(' ', '').replace(',', '')+ '\n ------\n')
y+=1
else:
x+=1
이는 러시아의 사이트로 이동해야합니다 StackOverflow에 대한. Plain StackOverflow를 사용하려면 영어로 질문해야합니다. –
수정했습니다. – bigidigi89