def count_M(arr, value):
count = 0
for item in arr:
# Разделяем строку на слова, используя пробел как разделитель
words = item.split()
if words and words[0] == value:
count += 1
return count
def calculate_result(self):
try:
input_text = self.input_text.toPlainText().strip() # Удаляем лишние пробелы и переносы строк
s = [line.strip() for line in input_text.split('\n')] # Разделяем на адреса по строкам
print(s) # Вывод исходных данных в консоль
result_c = []
result = {}
duplicates = [] # Список для хранения дубликатов
for item in s:
# Разделяем элемент на ключ и значение
parts = item.split()
# Проверяем, что в элементе есть как ключ, так и значение
if len(parts) == 2:
key, value = parts
result[key] = value
print(result[key])
else:
print(f"Неверный формат элемента: {item}")
while s:
unique_items = []
for item in s:
if count_M(s, item.split()[0]) == 1 or unique_items.count(item) == 0:
unique_items.append(item)
else:
duplicates.append(item) # Добавляем дубликаты в список
result_c.extend(unique_items)
for item in unique_items:
s.remove(item)
if s:
result_c.append("")
result_text = "\n".join(result_c)
self.result_text.setPlainText(result_text)
# Выводим дубликаты в консоль
if duplicates:
print("Дубликаты:")
for duplicate in duplicates:
print(duplicate)
except Exception as e:
QMessageBox.warning(self, 'Ошибка', f'Произошла ошибка: {str(e)}')
# Добавляем вывод ошибки в консоль
print(f'Произошла ошибка: {str(e)}')
Я смог сделать определение по первому слову, но все равно не получается. Ведь когда я даю коду такой список:
party1 2010
party2 2015
party1 2018
То код должен вернуть
party1 2010
party2 2015
party1 2018
А он возвращает
party1 2010
party2 2015
party1 2018
Прошу подсказать или помочь решить эту проблему