Strona 1 z 1

Python, drukowanie unikatowych elementów listy

: 29 stycznia 2013, 10:59
autor: LordRuthwen
Witam.
Mam plik będący statyczną tablicą ARP, ma on być generowany dynamicznie na podstawie innego pliku razem z odpowiednimi filtrami.
Mam problem jak to rozwiązać, gdyż niektóre wpisy mogą zawierać więcej niż 1 MAC i te wpisy należałoby pominąć w całości dla danego IP, pojedyncze wpisy dla adresu powinny być przepisane do pliku z tablicą ARP. Brak adresu na liście powinien być uzupełniony zerami.
Przykładowy plik z listą do przerobienia (kolumny są oddzielone znakiem \t):

Kod: Zaznacz cały

00:11:22:33:44:55 192.168.0.2
01:11:22:33:44:55 192.168.0.3
02:11:22:33:44:55 192.168.0.5
03:11:22:33:44:55 192.168.0.5
04:11:22:33:44:55 192.168.0.7
Dla takiej listy plik wynikowy powinien wyglądać tak:

Kod: Zaznacz cały

00:11:22:33:44:55 192.168.0.2
01:11:22:33:44:55 192.168.0.3
00:00:00:00:00:00 192.168.0.4
00:00:00:00:00:00 192.168.0.6
04:11:22:33:44:55 192.168.0.7
Powiem wam szczerze, że nie mam pomysłu jak to zrobić :) Zapewne proste to będzie, pewnie dlatego.
Żeby była jasność: nie chcę gotowca, proszę o nakierowanie na metodę jak to osiągnąć, jak napotkam później problemy, to będę pytał.

: 29 stycznia 2013, 13:02
autor: mariaczi
Algorytmicznie widziałbym to tak:
1. Wyszukuję elementy z kolumny drugiej, które się powtarzają
2. Zapamiętuję indeksy (miejsca) wystąpień tych elementów
3. Sprawdzam, co jest na zapamiętanych miejscach w kolumnie pierwszej (porównanie) i podejmuję odpowiednie działanie

: 01 lutego 2013, 00:04
autor: Czocher
Jeżeli chcesz sprawić, by elementy stały się unikalne to warto spróbować przejścia przez "set". Set automatycznie przerobi ci listę nieunikalnych elementów na listę unikalnych elementów, musisz tylko odpowiednio opracować jak połączyć ze sobą kolumny etc.