2016-06-23 12 views
-6

Wenn ich einen String in Kleinbuchstaben umwandelte, wie würde ich ihn wieder in die ursprüngliche Zeichenfolge konvertieren, die der Benutzer eingegeben hat? Ich habe nach einer bestimmten Python-Funktion gesucht, die die Zeichenfolge in die ursprüngliche Zeichenfolge zurück konvertiert. Ich habe .swapcase() verwendet, aber leider hat es nicht funktioniert. Bitte beachten Sie, dass die .lower() benötigt wird.Original-Gehäuse des Wiederherstellungsstrings wiederherstellen

+7

Warum überschreiben, wenn Sie das Original benötigen? Speichern Sie es in einer anderen Variablen. Dies sieht wie ein Fall von [XY-Problem] aus (http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem). –

+2

Sie können nicht, haben Sie Informationen verloren, indem Sie es unterlegen, dass Sie nicht zurück erhalten können. Wie @BhargavRao sagt, behalte das Original einfach ** bei. – jonrsharpe

+0

Wie erwarten Sie, dass diese Funktion funktioniert? Woher weiß es, ob 'f (" my string ")' '' MY STRING "' oder '" My String "' oder '" My StriNg "' zurückgeben soll? – Phylogenesis

Antwort

0

Sie können nicht. "AbC" und "aBc" werden beide zu "abc", wenn sie kleiner sind. Wenn eine unlowercase Methode existiert, wie könnte sie zwischen diesen beiden Fällen unterscheiden? Sollte es "AbC" oder "aBc" zurückgeben? Denken Sie daran, dass Strings keine "Erinnerung" an die Buchstaben haben, die sie enthielten.

0

Leider gibt es dafür keine Funktion. Anstatt zu fragen, warum Sie dies tun müssen, würde ich empfehlen, eine separate Liste zu führen, die verfolgt, welche Zeichen in der Zeichenfolge geändert wurden. Zwei Ansätze dazu würden beibehalten:

1.) Behalten Sie eine Liste der Indizes, die in der ursprünglichen Zeichenfolge Großbuchstaben waren und geändert wurden.

2.) Führen Sie eine Liste der Länge n, wobei n die Länge Ihrer Zeichenfolge ist, wobei der Wert wahr ist, wenn das Zeichen von .lower geändert wurde.

Mithilfe dieses Stils könnten Sie eine Hilfsfunktion schreiben, die die Kleinbuchstabe-Methode ausführt, die diese Liste für Sie erstellt, sowie die komplementäre unlowercase-Methode. Oder, logisch gesehen, könnten Sie einfach eine Instanz der ursprünglichen Variablen speichern, wie alle sagen.

0

Sie können es nicht zurück konvertieren. Was Sie tun können, ist die ursprüngliche Stich halten und nur eine neue Variable für die Klein machen:

original = 'AbC' 
lowered = original.lower() 

Was könnten Sie auch speichern zu tun ist, um beide Werte in einem dict. Zum Beispiel, wenn die Zeichenfolge ist ein Name wie ‚John Smith‘ und Sie wollen sowohl ‚John Smith‘ verwenden zu können und ‚John Smith‘ später Sie das tun könnten:

name = {"original": "John Smith", "lowercase": "john smith"} 

print(name["original"]) 
//prints 'John Smith' 

print(name["lowercase"]) 
//prints 'john smith' 

Here's a working example

Ich hoffe, das hilft bei dem, was Sie erreichen möchten.

Verwandte Themen