👤

Python, Napisz funkcję, która za argument przyjmuje słownik i zwróci słownik, który będziezawierał tylko pary klucz -> wartość, dla których klucz razem z wartością pozłączeniu tworzą palindrom.
Przykładowo:“key” - > “value” nie tworzą wspólnie palindromu“kaj” -> “ak” tworzy wspólny palindrom.


Odpowiedź :

def palindrom(words: dict):

   """

   Znajduje palindromy w danym słowniku.

   :param words: Słownik słów

   :return: Słownik z palindromami

   """

   # Tu dodamy palindromy.

   new_words = {}

   # Sprawdzamy każdy element w słowniku.

   for word in words:

       # Dodajemy do siebie słowa.

       mix = word + words[word]

       # Jeśli ta funkcja ma działać dla słów o różnym rozmiarze znaków - trzeba je zmniejszyć.

       mix = mix.lower()

       # Jeśli ta funkcja ma działać dla zdań itp. trzeba usunąć spacje.

       mix = mix.replace(" ", "")

       # Obracamy kolejność znaków.

       mix_reverse = mix[::-1]

       # Sprawdzamy czy oba ciągi znaków są takie same.

       is_same = (True if mix == mix_reverse else False)

       # Jeśli są takie same, dodajemy je do nowego słownika.

       if is_same:

           new_words[word] = words[word]

   # Zwracamy nowy słownik.

   return new_words

def palindrom_short(words: dict):

   """

   Znajduje palindromy w danym słowniku.

   :param words: Słownik słów

   :return: Słownik z palindromami

   """

   new_words = {}

   for word in words:

       check = (word + words[word]).replace(" ", "").lower()

       if check == check[::-1]:

           new_words[word] = words[word]

   return new_words

if __name__ == '__main__':

   test = {

       "test": "test",

       "Kimoyo": "Desu",

       "Kaj": "ak",

       "owo": "cowo",

       "Kobyła ma": "mały bok"

   }

   print(palindrom(words=test))

   print(palindrom_short(words=test))

   input()

Zobacz obrazek KIMOYO