Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 20.09.2022
Сообщений: 92

Задача с текстовым файлом, с применением словаря

10.01.2023, 01:10. Показов 472. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дан файл, содержащий телефонные номера абонентов. Структура файла:
Первая строка - количество абонентов
Далее следует n пар строк с абонентами:
1) ФИО абонента
2) номер телефона
Необходимо определить количество семей в справочнике. Семьёй считать тех абонентов,которые являются однофамильцами и у которых совпадает номер телефона.

Задача почти сделана. Не могу понять как прекратить счёт семей, когда уже 2 человека найдено. Код ниже и файл прилежащий к нему тоже:

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
def remove_last_symbol(line):
    if line[-1:] == "\n":
        line = line[:-1]
    return line
 
 
def Save_num(line):
    line = remove_last_symbol(line)
    num = int(line)
    return num
 
 
def Save_first_word(line, i=0):
    while line[i] != ' ':
        i = i + 1
    first_word = line[:i]
    return first_word
 
 
def If_fem_del(word):
    if word[-1] == 'а':
        word = word[:-1]
 
 
def Read_file_proc(name_file, count=0):
    my_dict = {}
    file = open(name_file, 'r')
    one_line = file.readline()
    numbers = Save_num(one_line)
    one_line = file.readline()
    for i in range(numbers):
        one_line = remove_last_symbol(one_line)
        if len(one_line) > 0:
            surname = Save_first_word(one_line)
            If_fem_del(surname)
            one_line = file.readline()
            one_line = remove_last_symbol(one_line)
            if not (one_line in my_dict):
                my_dict[one_line] = surname
            else:
                count = count + 1
        one_line = file.readline()
    file.close()
    return count
 
input_name = 'telephone.txt'
count_famile = Read_file_proc(input_name)
print(count_famile)
Вложения
Тип файла: txt telephone.txt (399 байт, 10 просмотров)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.01.2023, 01:10
Ответы с готовыми решениями:

задача с текстовым файлом
В текстовом файле Т записана непустая последовательность вещественных чисел, разделенных пробелами. Описать функцию Max(T) для нахождения...

Задача с текстовым файлом
Добрый день. Третий день уже не могу написать код этой программы. Все не выходит. Файл input не читается, хотя я занес его в Debug как мне...

Задача с текстовым файлом
В текстовом файле записана информация о людях (фамилия, имя, дата рождения, пол через пробел). Вывести на экран вначале информацию о людях...

1
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
10.01.2023, 06:02
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
fname = 'telefone.txt'
with open(fname) as f:
    n = int(f.readline().strip())
    my_list = f.read().splitlines()
 
telefone_book = {}
for i in range(n):
    k = my_list[2*i+1].strip()
    surname = my_list[2*i].strip().split()[0]
    if surname.endswith('а'):
        surname = surname[:-1]
    telefone_book.setdefault(k, set()).add(surname)
print(telefone_book)
 
cnt = 0
for k, v in telefone_book.items():
    cnt += len(v)
    
print(cnt)
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.01.2023, 06:02
Помогаю со студенческими работами здесь

Задача с текстовым файлом
В русском языке, как правило, после букв Ж, Ч, Ш, Щ пишется И, А, У, а не Ы, Я, Ю. Проверить заданный текст на соблюдение этого правила и...

Задача по работе с текстовым файлом
Задача по работе с текстовым файлом. Дана строка. Словом текста считается любая последовательность букв русского алфавита; между...

Задача на очередь с текстовым файлом
Помогите пожалуйста написать задачу. Создать очередь, информационные поля которой содержат числа из текстового файла. Вставить в конец...

Задача на работу с текстовым файлом
Дан файл,содержащий различные даты. Каждая дата-это число,месяц и год. Найти год с наибольшим номером.

Написано алгоритма,задача с текстовым файлом
Добрый день, помогите пожалуйста в написании алгоритма. Вот задачка: Дан текстовый файл. Длина строк произвольна. Слова в строках...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru