Поиск последовательностей чисел в списке
Хотел попросить помощи в решении данной задачи. Имеются две книги одна с номерами телефонов 'CDR_RAW, а в другой справочник кодов телефонов с тарифами на услуги связи. Мне нужно к каждому номеру телефона получить перечень кодов из таблицы тарифов 'Свод по тарифам.txt'.
CDR_RAW = [74956666785, 73428527455, 74875244661 т д]
'Свод по тарифам.txt' = [7495, 7812, 7343, 7487 и т д]
Итоговое пересечение: List_ = [749566667857495, 7487]
tariff= open('Свод по тарифам.txt', 'r', encoding='UTF8')
next(tariff)
CDR = open('CDR_RAW.csv', 'r', encoding='UTF-8')
next(CDR)
for line_3 in CDR:
line_4 = line_3.replace('"', '').strip().split(';')
for elem_number_CDR in range(0, len(line_4[5])):
for line_1 in tariff:
line_2 = line_1.replace('"', '').strip().split(';')
List_ = []
if line_4[5][0:elem_number_CDR] == line_2[0][0:elem_number_CDR]:
List_.append(line_2[0][0:elem_number_CDR])
print(List_)
Ответы (1 шт):
Автор решения: vadim vaduxa
→ Ссылка
CDR_RAW = [74956666785, 74956666786, 73428527455, 74875244661, ]
CODE = [7495, 7812, 7343, 7487, ]
cdr_raw = list(map(str, CDR_RAW))
codes = set(map(str, CODE))
code_cdr = {'unknown_code': [], }
for tel in cdr_raw:
for code in codes:
if str.startswith(tel, code):
try:
code_cdr[code].append(tel)
except KeyError:
code_cdr[code] = [tel]
break
else:
code_cdr['unknown_code'].append(tel)
print(code_cdr) # {'unknown_code': ['73428527455'], '7495': ['74956666785', '74956666786'], '7487': ['74875244661']}