Kompresja strunowa w Pythonie

Kompresja strunowa w Pythonie
Systemy zarządzania bazami danych w pamięci (IMDBM) mogą być użyte do kompresji adresów URL i wiadomości, między innymi. Rzućmy okiem na kompresję łańcucha bardziej głębia. Kompresja łańcuchowa z wykorzystaniem języka programowania Pythona będzie tematem dyskusji w tym artykule.

W Pythonie kompresja ciągu odnosi się do procesu skracania dużego sznurka. Oryginalny zamiar sznurka nigdy nie zostanie zmieniony przez kompresję. Wykorzystamy kompresję ciągów, aby ten adres URL był krótszy. Chociaż długość adresu URL zmienia się po skompresowaniu, adres URL, który otrzymujesz po skróceniu.

Znaczenie kompresji strunowej w Pythonie

W Pythonie podstawowym celem kompresji strunowej jest oszczędzanie tyle pamięci, co możliwe. Wynika to z faktu, że pojemność pamięci wymaga zatrudnienia większej liczby zasobów, które z kolei są dość kosztowne. W dzisiejszych czasach wszyscy oczekują szybkości w dowolnej pracy, którą wypełniają. Kompresja danych lub ciąg, aby przetworzyć mniej czasu i zapewni wyjście tak szybko, jak to możliwe.

Ma również operacje szybkiego odczytu, co oznacza, że ​​jeśli tekst zostanie skompresowany, użytkownik będzie musiał go odczytać w krótszym czasie. W rezultacie kompresja ciągów zapisuje czas pamięci i przetwarzania, a także czas potrzebny na odczytanie wiadomości.

Algorytm kompresji strunowej w Pythonie

Właśnie przeszliśmy przez algorytm do kompresji określonej długości ciągu wejściowego. String powinien zostać skompresowany, aby ciągłe powtarzanie znaków zastępuje się znakiem, a następnie liczba ciągłych powtórzeń następuje postać.

  • Wybierz pierwszy znak w danym ciągu (Str).
  • Do sprężonego ciągu dołącz go.
  • Dodaj sumę do zagęszczonego ciągu, jeśli liczba kolejnych występów znaku wynosi więcej niż 1. Wybierz następny znak i powtórz powyższe procedury, aż STR zostanie zakończony.

Przykład 1: ściskany ciąg za pomocą algorytmu kompresji ciągu w Pythonie

W danym przykładzie wykorzystaliśmy wyżej określony algorytm. Podany ciąg musi zostać skompresowany, stosując algorytm. Kodowanie długości uruchomienia to termin tego rodzaju kompresji. Aby uzyskać lepsze zrozumienie, ustawmy algorytm kompresji ciągów na kod.

Tutaj mamy funkcję zdefiniowaną jako „kompres.„Przeszliśmy zmienną„ MyString ”jako argument. Zbudowaliśmy zmienną „indeks” wewnątrz funkcji, która początkowo jest utrzymywana na zero. Ta zmienna „indeks” przyjmuje wartość indeksu podanego ciągu do skompresowania. Następnie zainicjowaliśmy pusty ciąg i przypisaliśmy go do zmiennej „Compressed_String”. Następnie weź długość łańcucha, wywołując funkcję długości nad „myString” w zmiennej „str_len."

Teraz mamy warunek, w którym liczba jest równa „1”, jeśli długość łańcucha nie jest dopasowana do pozycji indeksu ciągu. Znowu mamy chwilę warunku powtarzania znaków wewnątrz sprężonego ciągu. Używając warunku IF-ELSE, jeśli znak zostanie powtórzony kolejno, wówczas liczba zostanie zwiększona do sprężonego ciągu. W przeciwnym razie nie będziemy policzyć jednego znaku w ciągu.

Ciąg jest zdefiniowany i inicjowany na końcu kodu przed wyrażeniem drukowania. W wyrażeniu drukowania wydrukowaliśmy skompresowany ciąg.

Wyjście podanego ciągu jest kompresowane w następujący sposób.

Przykład 2: Ścigał sznurek za pomocą biblioteki IterTools w Python

Moduł Python iTerTools umożliwia rowerem nad strukturami danych. Tego rodzaju struktura danych jest również określana jako iterable. Ten moduł oferuje oszczędzanie pamięci i szybki sposób tworzenia algebry iterator.

Korzystając z IterTools w następującym kodzie, zaimportowaliśmy „Weźmy podczas”.„Są one zdefiniowane w kodzie. Następnie zdefiniowaliśmy funkcję reprezentowaną jako „kompresja.„Funkcja jest wywoływana z łańcuchem, który musi zostać skompresowany jako argument.

Ponieważ mamy warunek „jeśli”, powrót ”, jeśli nie ciąg” jest taki sam jak warunek opiekuna w pierwszym algorytmie. Rozumowanie odbywa się za pomocą wartości zwrotnej. Pętla jest wykorzystywana jako zdanie. Będzie to przełączać się nad znakami w argumencie ciągów, dopóki znak nie będzie równy początkowego znaku argumentu ciągu (ciąg [0]).

W tym łańcuchu generator listy jest następną funkcją. Generator zwraca tylko jedną rzecz na raz, podczas gdy funkcja listy odzyskuje wszystkie. Następnie ogon jest wytwarzany z funkcją upadku, która zmniejsza liczbę elementów pobranych przez „głowę.„Funkcja łączenia łączy elementy listy w ciągu, który jest dostarczany jako nowy parametr cyklu iteracji. Iteracja zatrzyma się, gdy wszystkie znaki w ciągu zostaną usunięte i zastąpione pustym sznurkiem.

Wyjście, które otrzymaliśmy z modułu IterTools, jest następujące.

Przykład 3: Ścigał sznurek za pomocą prostej pętli w Pythonie

Tutaj używamy prostego cyklu pętli do kompresji sznurka w Pythonie. Utworzyliśmy pusty ciąg w zmiennej „String1”. Nowy ciąg jest również tworzony jako „String2”, który ma ciąg. Następnie mamy liczbę równa „1”. Używana jest pętla dla dla formy zakresu dla danego ciągu. Jeśli warunek jest dla znaków powtarzanych w sposób ciągły w ciągu, zostanie zwiększony o liczbę. W przeciwnym razie klauzula elastyczna zostanie wykonana.

Wyjście wygenerowane z powyższego kodu jest następujące.

Wniosek

Mam nadzieję, że wiele się nauczyłeś z dzisiejszego kompleksowego artykułu kompresyjnego Pythona. Przeszliśmy przez dlaczego kompresja strunowa jest konieczna dla prawdziwego życia. Dokładne zrozumienie algorytmu, które ma być zastosowane, a także jasne stwierdzenie kodu z biblioteką i bez.