2017-06-26 6 views
1

Ich bin neu in der Programmierung und lerne gerade Python. Ich stehe fest, wenn ich Wörterbücher in Python ausprobiere. Ich habe einen normalen dict mit einem Schlüssel und den Wert als eine leere Zeichenfolge:Wie aktualisiert man die Werte von geschachtelten Diktat in Python?

dict = {'Project_path':''}, 
     'Target_files':'', 
     'default_ws':''} 

ich den Wert von Tasten wie diese Aktualisierung:

dict['project_path'] = 'Pass' 

Aber ich will ein dict erstellen wo ich keine langen Schlüssel benutzen muss; stattdessen kann ich diese Tasten, um Zahlen zuordnen, so dass, wenn ich ein dict aktualisieren möchte ich es wie folgt tun:

dict = {1:{'Project_path':''}, 
     2:{'Target_files':''}, 
     3:{'default_ws':''}} 
dict['1'] = 'pass' 

Es sollte den Wert für 'project_path' als 'pass'

Und nachdem die Werte zu aktualisieren aktualisieren, Ich muss dies in eine Datei schreiben

Gibt es eine Möglichkeit, es zu tun?

Antwort

0

Willkommen bei der Programmierung in Python! Wenige Dinge hier: Erstens, dict als Variablennamen ist keine gute Idee, da dies ein Schlüsselwort für die gesamte Klasse von Wörterbuch-Objekten ist. Sie können etwas wie my_dict oder etwas ähnliches verwenden.

Zweitens, wenn Sie die Schlüssel Zahlen machen und dann rufen Sie dict['1'] = 'pass' dies sucht nach der Zeichenfolge '1' in den Schlüsseln, wenn Sie die ganze Zahl 1 als Schlüssel deklariert haben. Lassen Sie mich erklären:

'1' ist eine Zeichenfolge

1 eine ganze Zahl.

In Python sind dies zwei sehr unterschiedliche Dinge und können nicht gemischt werden. Deshalb wird der Wert nicht aktualisiert. Wenn Sie sagen würden dict[1] = 'pass', sollte das für Sie arbeiten und es sollte die Werte aktualisieren. Beachten Sie jedoch, dass dabei das gesamte aktuelle Wörterbuch überschrieben und durch "pass" ersetzt wird. Wenn Sie stattdessen nur den Wörterbuchschlüssel ändern möchten, verwenden Sie

dict[1]['Project_path'] = 'pass'.

Dies scheint jedoch für mich redundant. Es ist irgendwie nicht klar, warum Sie Integer dort genau abbilden wollen (vielleicht um es zu durchlaufen und Werte zu ändern), aber wenn Sie nur Ganzzahlen damit verbunden haben möchten, könnten Sie einfach solche Wörterbücher wie folgt erstellen:

Dann können Sie auf sie durch ihren Index ab 0 zugreifen. my_array[0] ist {"Project_path":''}. Auch hier ist es nicht ganz klar, warum Sie diesen Diagrammen ganze Zahlen zuordnen wollen, daher ergibt das für mich keinen Sinn, denn das ist ein wenig überflüssig.

Schließlich Schreiben in eine Datei. Es gibt eine Menge Webseiten, da es viele Möglichkeiten gibt, Dateien zu lesen und zu schreiben (wie this one), aber hier ist die kurze Version.

with open('your_filepath.txt', 'w') as file: #note this will overwrite the current file, see the page I linked. 
    file.write(my_array[0]) #or whatever you want to write to it. 

Es ist so einfach, aber wie ich schon sagte, auf dieser Seite einen Blick zu sehen, was alle Möglichkeiten Sie haben und die besten für Sie zu wählen. Hoffentlich ist das hilfreich und kann Sie beginnen.

+0

Dank SH7890 hilft dies sehr und in Bezug auf das Mapping ganzer Zahlen ist nur, dass ich das dict in anderen Klassen wiederverwenden und die Werte der Schlüssel mit Schleife aktualisieren ......... so nur Tippfehler und Schreiben zu vermeiden Lange Schlüssel ist es besser, Zahlen zu haben, so dass ich die Werte leicht aktualisieren kann und nur noch eine Frage nach Ihrem Array von dict jetzt, wenn ich den Wert für project_path = 'Pass' aktualisieren will, kann ich das tun, indem ich bin ich richtig? – PythonFreek

+0

'my_array [0] [" Project_path "] =" Pass "' ändert den Wert. – SH7890

+0

Ich weiß, dass Sie ein Anfänger sind, und Sie gehen in die richtige Richtung, aber Python hat einige fortgeschrittene Funktionen, die Sie verwenden können, um Wörterbücher zu durchlaufen, und Sie sollten sie auschecken, sobald Sie sich an Schleifen und Datenstrukturen gewöhnt haben. Viel Glück in deinen Bemühungen! – SH7890

Verwandte Themen