2016-12-06 8 views
1

Ich habe eine Liste von Strings: ['John','William','Ken','Rogers']. Ich brauche "Corp\" auf jedes Element in der Liste vorangestellt, so dass die endgültige Liste sieht wie folgt aus:String-Endung "" zu allen Elementen einer Liste von Strings hinzufügen

['Corp\John','Corp\William','Corp\Ken','Corp\Rogers'] 

Ich habe versucht, die folgenden:

s=['John','William','Ken','Rogers'] 
users=['Corp\\' + m for m in s] 
print(users) 

Der Ausgang gibt mir

['Corp\\John','Corp\\William','Corp\\Ken','Corp\\Rogers'] 

Wenn ich users=['Corp\' + m for m in s] versuche, erhalte ich einen offensichtlichen Fehler:

"StringError EOL while scanning string literal"

Ich würde jedes Element in der genauen Form 'Corp\name' benötigen, da dies in einer for-Schleife verwendet werden muss, um Benutzer zu überprüfen, die sich anmelden können.

+0

Sie müssen den Backslash umgehen. Ersetzen Sie einen umgekehrten Schrägstrich durch zwei. – user3030010

+0

Nur 'print (* users)'. Das '\\' wird hinzugefügt, weil 'listen' das Objekt' __repr__' aufruft. –

+0

Die Ausgabe, die Sie sehen, ist die Repräsentation ('repr') des Listenobjekts (das mit' eval' verwendet werden kann, um Ihnen die Liste in Python zu geben). Aber der tatsächliche Wert jeder Zeichenfolge ist "Corp \ *". – sirfz

Antwort

4

Dies kann ein Problem mit der Ausgabe der Liste sein. Mit Hilfe der REPL:

>>> lsa = ["Corp\{}".format(item) for item in ls] 
>>> print(lsa) 
['Corp\\Jenna', 'Corp\\Wilma', 'Corp\\Katie', 'Corp\\Rebecca'] 
>>> for i in lsa: 
...  print(i) 
... 
Corp\Jenna 
Corp\Wilma 
Corp\Katie 
Corp\Rebecca 

Wie Sie in der ersten print sehen können, dass die vollständige Liste druckt, sehen wir zwei Schrägstriche. Der Grund dafür ist, dass Python sagt, dass der zweite Schrägstrich geflutet ist. Im zweiten Druck innerhalb einer for-Schleife sehen wir, dass es nur einen Schrägstrich gibt, weil wir jedes Element einzeln drucken und die Escape-Zeichenfolge angewendet wird, was nur einen einzigen Schrägstrich ergibt.

+1

Ich habe meine Antwort gelöscht, weil sie wie deine ist. Danke, dass Sie auf die Merkwürdigkeiten hingewiesen haben, die ich nicht beachten werde. –

Verwandte Themen