[PYTHON] diktieren in diktieren Macht ein Diktat ein Diktat

In Bezug auf den Titel werde ich berichten, dass er von Python-Anfängern implementiert wurde. Erstens ist ein Diktat in Diktat ein Diktat wie das folgende.

{'name': '2M2VgARX', 'js': {'a': 0, 'b': 0, 'c': 'sdmo'}}

Die In-Dikt-Taste und die In-Dikt-Taste sind einzigartig, auch wenn sie kombiniert werden. Deshalb wollte ich sie in einem Wörterbuch kombinieren, also habe ich eine solche Funktion erstellt.

Bild nach der Konvertierung

{'name': '2M2VgARX', 'js_a': 0, 'js_b': 0, 'js_c': 'sdmo'}

Es scheint eine Standardfunktion zu geben, aber weil meine Suchfähigkeit gering ist Bitte beachten Sie, dass es nicht gefunden wurde.

Implementierung

import secrets
import string


def dict_extract(item, prefix=''):
    return_dict = {}
    for key, value in item.items():
        if isinstance(value, dict):
            prefix += f'{key}_'
            return_dict.update(dict_extract(value, prefix))
        else:
            return_dict[prefix + key] = value
    return return_dict


def main():
    # create sample data
    items =[]
    alphabet = string.ascii_letters + string.digits
    password = ''.join(secrets.choice(alphabet) for i in range(8))
    for i in range(10):
        password = ''.join(secrets.choice(alphabet) for i in range(8))
        tmp = {'a': i, 'b': i*2, 'c': 'sdmo'}
        tmp_item = {'name': password, 'js': tmp}
        items.append(tmp_item)

    # print dict
    for item in items:
        print(dict_extract(item))


if __name__ == "__main__":
    main()

Ausführungsergebnis

{'name': 'ZQ4NaBbc', 'js_a': 0, 'js_b': 0, 'js_c': 'sdmo'}
{'name': 'E5hS6IqS', 'js_a': 1, 'js_b': 2, 'js_c': 'sdmo'}
{'name': 'PC1xzQGi', 'js_a': 2, 'js_b': 4, 'js_c': 'sdmo'}
{'name': 'McJTGCjl', 'js_a': 3, 'js_b': 6, 'js_c': 'sdmo'}
{'name': '3hYsdwB8', 'js_a': 4, 'js_b': 8, 'js_c': 'sdmo'}
{'name': 'UKocBVhJ', 'js_a': 5, 'js_b': 10, 'js_c': 'sdmo'}
{'name': '3QVlhwOn', 'js_a': 6, 'js_b': 12, 'js_c': 'sdmo'}
{'name': 'bspVE4Hp', 'js_a': 7, 'js_b': 14, 'js_c': 'sdmo'}
{'name': 'rLLUxF4f', 'js_a': 8, 'js_b': 16, 'js_c': 'sdmo'}
{'name': '5wt3UCvR', 'js_a': 9, 'js_b': 18, 'js_c': 'sdmo'}

Kommentar

Beiseite

Ich finde es klüger, sich mit dem Präfix als Liste zu verbinden. Vermeiden Sie in diesem Fall, die Liste als Argument zu übergeben. list ist ein veränderbares, aktualisierbares Objekt. Wenn Sie ein veränderbares Objekt als Anfangswert des Arguments angeben, wird dieses Objekt erstellt, wenn die Funktion definiert wird. Wenn Sie also die Funktion aufrufen, wobei das entsprechende Argument weggelassen wird, wird dasselbe Objekt verwendet.

Code

def string_arg2(s_arg=['hatsumi']):
    s_arg.append(' san')
    print(''.join(s_arg))

for i in range(10):
    string_arg2()

Ergebnis

hatsumi san
hatsumi san san
hatsumi san san san
hatsumi san san san san
hatsumi san san san san san
hatsumi san san san san san san
hatsumi san san san san san san san
hatsumi san san san san san san san san
hatsumi san san san san san san san san san
hatsumi san san san san san san san san san san

Das Ergebnis ist wie ein Visitenkartenverwaltungsdienst. Dikt ist übrigens auch veränderlich, seien Sie also vorsichtig. Die Initialisierung erfordert viel Arbeit.

def string_arg2(s_arg=None):
    if s_arg is None:
        s_arg = ['hatsumi']
    s_arg.append(' san')
    print(''.join(s_arg))

for i in range(10):
    string_arg2()

Rekrutierung

Recommended Posts

diktieren in diktieren Macht ein Diktat ein Diktat
Machen Sie einen Screenshot in Python
Erstellen Sie eine Funktion in Python
Erstellen Sie ein Wörterbuch in Python
Verwenden Sie in Python ein Diktat mit Listenschlüssel
Erstellen Sie ein Lesezeichen in Python
Zeichne ein Herz in Python
Führen Sie ein mehrzeiliges Skript in einem PDB aus
Ich bekomme einen UnicodeDecodeError mit mecab-python3
Wahrscheinlich in einer Nishiki-Schlange (Originaltitel: Vielleicht in Python)
Zählen Sie bestimmte Zeichenfolgen in einer Datei
Schreiben Sie eine Dichotomie in Python
Schreiben Sie einen tabellengesteuerten Test in C.
[Python] Verwalten Sie Funktionen in einer Liste
Drücken Sie einen Befehl in Python (Windows)
Erstellen Sie mit Flask einen CSV-Reader
Erstellen Sie einen DI-Container mit Python
Gibt es ein besonderes in scipy? ??
Ich erhalte einen KeyError in pyclustering.xmeans
Hinweis zu get_scorer von sklearn
Implementieren Sie einen Datumssetzer in Tkinter
ABC166 in Python A ~ C Problem
Schreiben Sie A * (A-Stern) -Algorithmen in Python
Behandeln Sie Anfragen in einem separaten Prozess
Speichern Sie eine bestimmte Variable in tensorflow.session
Erstellen Sie eine Binärdatei in Python
Python / Machen Sie ein Diktat aus einer Liste.
Löse ABC036 A ~ C mit Python
Erste Schritte mit SQLite in einer Programmiersprache
Schreiben Sie ein Kreisdiagramm in Python
Schreiben Sie das Vim-Plugin in Python
Schreiben Sie eine Suche mit Tiefenpriorität in Python
Implementierung eines einfachen Algorithmus in Python 2
Speichern Sie YAML-formatierte Dateien mit PyYAML
Löse ABC037 A ~ C mit Python
Führen Sie einen einfachen Algorithmus in Python aus
Zeichnen Sie ein CNN-Diagramm in Python
Beim Erstellen einer Matrix in einer Liste
Ich habe einen Bash namens Powerline-Shell eingebaut, der mich verrückt macht
Machen Sie einen Vorhanggenerator mit Blender
Erstellen Sie eine zufällige Zeichenfolge in Python
Beim Schreiben eines Programms in Python
Erstellen Sie mit Django einen LINE-Bot
Holen Sie sich Boolean mit Flask-Anfrage
Generieren Sie eine erstklassige Sammlung in Python
Installieren Sie Django in einer virtuellen Pipenv-Umgebung
Spiralbuch in Python! Python mit einem Spiralbuch! (Kapitel 14 ~)
Löse ABC175 A, B, C mit Python
Verwenden Sie print in Python2 lambda expression
Ein einfacher HTTP-Client, der in Python implementiert ist
Ich möchte in der Einschlussnotation drucken
Vorsichtsmaßnahmen beim Beizen einer Funktion in Python
Schreiben Sie den Test in die Python-Dokumentzeichenfolge
Zeigen Sie eine Liste der Alphabete in Python 3 an
Anzeigen von Matplotlib-Diagrammen in einer Webanwendung
Versuchen Sie, ein SYN-Paket in Python zu senden