[PYTHON] Est-il possible de construire une structure en boucle avec une personne dont le nom de la ville et celui du maire prêtent à confusion?

Conclusion

** Je ne peux pas assembler **.

Le plus long relais

--Maire de Chiba à Awahara City --Maire Kumagai de la ville de Chiba --M. Kumagai, maire de Tomioka --Maire Enomoto de la ville de Tomioka

4 villes.

Les résultats ci-dessus datent de novembre 2020.

introduction

image.png (Cité sur Twitter de la personne)

Le [maire Kumagai] de la ville de Chiba (https://twitter.com/kumagai_chiba) (je suis sur le point de devenir gouverneur de la préfecture) est célèbre, n'est-ce pas?

image.png (Extrait de Wikipedia)

Cependant, le maire de Kumagai est susceptible d'être confondu avec le maire de la ** ville de Kumagai, préfecture de Saitama **. C'est un nom de famille naturel, donc il ne peut pas être aidé, mais parfois de tels conflits de noms se produisent. De plus, en théorie, il y a une possibilité qu'une boucle infinie "YY maire de la ville XX-> ZZ maire de la ville YY-> XX maire de la ville ZZ" puisse se produire, ce qui est difficile! Vous devez le rechercher.

Méthode d'enquête

Page d'accueil de l'Association nationale des maires a publié les noms des maires de tous les gouvernements locaux (il semble que les villes et les villages ne soient pas inclus). Je vais tout chercher. Selon les spécifications de l'autre page, le résultat de la recherche n'a pas d'adresse unique, donc s'il y a une personne étrange qui veut réellement exécuter le code ci-dessous, accédez réellement à la page et lancez une requête de recherche pour obtenir le fichier html S'il vous plaît. Dans le code ci-dessous, c'est «source.html».

Code source ci-dessous:

import re
import requests

def search(p,result):
    print('{}De la ville{}À la recherche du maire... '.format(p[0],p[1]))
    for r in result:
        if r[0] == p[1]:
            return 1+search(r,result)  
    print('{}La ville ne semble pas exister\n'.format(p[1]))
    return 1

def main():
    t = open('source.html').read()
    pattern = r'<tr><td class="city_info">(.*?)ville</td><td class="city_info">(.*?) (.*?)</td><td class="city_info">'
    result = re.findall(pattern,t)
    max_length = 0
    for r in result:
        max_length = max(max_length,search(r,result))
        if max_length == 4:
            break
    return

main()

État d'exécution.

À la recherche du maire Noda de la ville de Kamaishi...
À la recherche du maire Suzuki de Noda City...
La ville de Suzuki ne semble pas exister

À la recherche du maire Fujiwara de Futado City...
La ville de Fujiwara ne semble pas exister

À la recherche du maire Tamura de la ville de Hachimandaira...
À la recherche du maire Honda de Tamura City...
Honda City ne semble pas exister

À la recherche du maire Ozawa de la ville d'Oshu...
La ville d'Ozawa ne semble pas exister

À la recherche du maire Hama de la ville de Takizawa...
Main Hama City ne semble pas exister

À la recherche du maire de Sendai City...
La ville du comté ne semble pas exister

À la recherche du maire Kameyama de la ville d'Ishimaki...
À la recherche du maire Sakurai de la ville de Kameyama...
La ville de Sakurai ne semble pas exister

À la recherche du maire Sato de la ville de Shiogama...
La ville de Sato ne semble pas exister

À la recherche du maire Sugawara de la ville de Kesennuma...
Sugawara City ne semble pas exister

À la recherche du maire Yamada de la ville de Shiraishi...
La ville de Yamada ne semble pas exister

À la recherche du maire Yamada de la ville de Natori...
La ville de Yamada ne semble pas exister

À la recherche du maire Kurosu de la ville de Kakuda...
Black Su City ne semble pas exister

À la recherche du maire Fukaya de la ville de Tagajo...
À la recherche du maire Kojima de la ville de Fukaya...
Kojima City ne semble pas exister

À la recherche du maire Kikuchi de la ville d'Iwanuma...
La ville de Kikuchi ne semble pas exister

À la recherche du maire Kumagai de la ville de Tomai...
À la recherche du maire Tomioka de la ville de Kumagai...
À la recherche du maire Enomoto de la ville de Tomioka...
Enomoto City ne semble pas exister

À la recherche du maire de Chiba à Kurihara...
À la recherche du maire Kumagai de la ville de Chiba...
À la recherche du maire Tomioka de la ville de Kumagai...
À la recherche du maire Enomoto de la ville de Tomioka...
Enomoto City ne semble pas exister

résultat

Si vous aviez une structure en boucle, ce code provoquerait une boucle infinie et générerait des lignes infinies, mais heureusement ou malheureusement, ce n'était pas le cas. Quand j'ai vérifié la longueur maximale, elle était de quatre. Je pensais que j'irais vers 6 mais c'est peu inattendu ...

À propos, les quatre lignes sont ** Awahara City → Chiba City → Kumagai City → Tomioka City Line ** indiquées au début. Cependant, on s'attend à ce que cette ligne s'effondre parce que Toshito Kumagai, le maire de Chiba City, se présentera pour le gouverneur de la préfecture et sera probablement élu. La réalisation de la boucle du nom du maire semble être loin.

Recommended Posts

Est-il possible de construire une structure en boucle avec une personne dont le nom de la ville et celui du maire prêtent à confusion?
Est-il possible de se lancer dans une entreprise de pré-cotation et de faire fortune avec des stock-options?
[Python] Qu'est-ce qu'un tuple? Explique comment utiliser sans toucher et comment l'utiliser avec des exemples.
Est-il possible de détecter des images similaires uniquement avec ImageHash?
Comment rendre le nom du conteneur accessible dans Docker en tant que sous-domaine
Lisez le fichier CSV avec Python et convertissez-le en DataFrame tel quel
Créez un arbre de décision à partir de 0 avec Python et comprenez-le (4. Structure des données)
Une commande pour spécifier un fichier avec un nom spécifique dans un répertoire avec find et mv, cp ou gzip (linux)