2016-06-23 6 views
-6

文字列を小文字に変換した場合、ユーザーが入力した元の文字列に変換するにはどうすればよいですか?私は元の文字列に文字列を変換する特定のPython関数を探しています。私は.swapcase()を使用しましたが、残念ながらそれは動作しませんでした。 .lower()が必要であることに注意してください。復元文字列のオリジナルのケーシング

+7

オリジナルのものが必要なときに、なぜ上書きするのですか?別の変数に保存します。これは[XY問題](http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)のように見えます。 –

+2

あなたは戻ってくることができない小文字で情報を失ってしまいました。 @BhargavRaoが言うように、ちょうど**オリジナルもあまりにも**を維持します。 – jonrsharpe

+0

この機能がどのように機能すると思いますか? 'f"( "my string") 'は" MY STRING "や" My String "や" My StRiNg "などを返すべきかどうかをどのように知るのですか? – Phylogenesis

答えて

0

できません。小文字のときは、 "abc"と "aBc"が両方とも "abc"に変わります。 unlowercaseメソッドが存在する場合、どのようにしてこれら2つのケースを区別できますか?それは "AbC"または "aBc"を返しますか?文字列には、以前使用した文字の「記憶」がないことに注意してください。

0

残念ながらこの機能はありません。なぜこれを行う必要があるのか​​という疑問ではなく、文字列のどの文字が変更されたかを追跡する別のリストを作成することをお勧めします。これには2つの方法があります。

1.)元の文字列の索引のリストを大文字にして修正しました。

2.長さnのリストを保持します.nは文字列の長さで、文字が.lowerによって変更された場合は値がtrueです。

このスタイルを使用すると、このリストを作成する小文字のメソッドと補完的なアンローラーゼメソッドを作成するヘルパー関数を記述できます。あるいは、最も論理的には、誰もが言っているように、元の変数のインスタンスを保存することができます。

0

戻すことはできません。あなたにできることは、元の刺し傷を維持し、ちょうど小文字のいずれかの新しい変数を作成します:

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

何も行うことができますが辞書に両方の値を格納しています。例えば、文字列が「ジョン・スミス」などの名前であり、あなたがこれを行うことができに後で「ジョン・スミス」と「ジョン・スミス」の両方を使用することができるようにしたい場合:

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

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

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

Here's a working example

を私はこれがあなたが達成しようとしていることに役立つことを願っています。

関連する問題