Как отсеять из файла дубликаты строк?

Есть файл, в котором имеются серийные номера коммутационного оборудования. Нужно отсеять дубликаты серийников.

Тело файла:

48575443FD5D1836
48575443CD17E782
485754434F2C3E3D
48575443D401474B
4857544354AD3F15
48575443DFA3EE32
48575443D401474B
4857544351D54615
48575443BEC55E0E
4857544358EF2A64
4857544354AD3F15
48575443C70A7B0E
4857544358EF2A64
48575443BAD68148
48575443C449EB0E
48575443C2B0430E
48575443C09E230E
485754435A09EC64
48575443C09E230E
4857544351D54615
485754438D135F11
485754438C891211
48575443DE8D2E11
48575443C09E230E
48575443C5752B0E
485754438D25E311
48575443542D7D15
485754438C844E11
48575443C40DAF0E
4857544385A06220
48575443C1FEE90E
48575443C7E3850E
4857544388290820
485754438CAFB411
4857544388290820
# Открываем файл serials.txt
with open('serials.txt') as f1:
    # Записываем файл serials.txt в строку f1_text
    f1_text = f1.read()
    
# Конвертируем строку файла serials.txt в список
str_to_list1 = f1_text.split()
main_list1 = [i for i in str_to_list1]

А как дальше?


Ответы (1 шт):

Автор решения: MaxU

Воспользуйтесь set - он сам удалит все дубликаты, оставив только уникальные значения:

res = set()
with open('serials.txt') as f1:
    for line in f1:
        res.add(line.strip())
res = list(res)

Из официальной документации:

A set is an unordered collection with no duplicate elements. Basic uses include membership testing and eliminating duplicate entries. Set objects also support mathematical operations like union, intersection, difference, and symmetric difference.

→ Ссылка