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.
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()
{'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'}
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()
Recommended Posts