Ich möchte etwas von der Form tun:mit Python enumerate() gleichzusetzen Listenelemente
for index,value in enumerate('xyz'):
[x,y,z][index] = [dict1.get(value),dict2.get(value),dict3.get(value)][index]
Aber natürlich funktioniert das nicht.
Ich möchte eine Eingabezeichenfolge verwenden und jedes Zeichen einem Wörterbuch zuordnen und dann den entsprechenden Wörterbuchwert einer Variablen zuweisen. Betrachten Sie die folgende Funktion:
def parse_options(options):
dir_pref,file_pref,name_pref = None,None,None
for idx,char in enumerate(options):
# match key characters from input 'options' string to dictionaries
if char in [dir_options.keys(),file_options.keys(),name_options.keys()][idx]:
[dir_pref,file_pref,name_pref][idx] = \
[dir_options.get(char),file_options.get(char),name_options.get(char)][idx]
return [dir_pref,file_pref,name_pref]
Which, derzeit gibt (None,None,None)
Dies ist eine Umbenennung Skript. options
ist ein Zeichenfolgenobjekt, bei dem das erste Zeichen der Zeichenfolge meinem Skript mitteilt, wie es über Verzeichnisse iterieren soll; das zweite Zeichen teilt meinem Skript mit, wie es wählen soll, auf welchen Dateien es laufen soll; und das dritte Zeichen teilt meinem Skript mit, wie es die Dateien umbenennen sollte. Ich möchte in options
auf ein entsprechendes Wörterbuch jedes der Zeichen übereinstimmen (dir_options
, file_options
und name_options
, respectively) und ihre entsprechenden Wörterbuch Werte zu drei neue Variablen zuweisen (dir_pref
, file_pref
und name_pref
)
Es kann sein, dass es eine viel bessere Möglichkeit, das zu tun, in diesem Fall würde ich gerne Vorschläge hören
Soweit ich weiß, können Sie mit * iterable entpacken * keinen zusätzlichen Index ** angeben. –
Ich weiß nicht ob es nur ich ist, aber ich verstehe das überhaupt nicht. Ich habe keine Ahnung, was versucht werden soll und was das endgültige erwartete Ergebnis sein soll. – idjaw
Ich denke, was Sie auf lange Sicht zu tun versuchen, kann viel besser als das, was Sie versuchen, getan werden – TerryA