2016-11-29 3 views
1

string.format内部で可変文字列スライシングを行うにはどうすればよいですか?string.formatの内部で文字列スライシングを使用する方法

"{0[:2]} Some text {0[2:4]} some text".format("123456") 

結果このような結果が欲しいです。

12いくつかのテキスト34テキスト

+1

なぜ「'シンプルいけませんいくつかのテキスト{0}いくつかのテキスト ".format(" 123456 "[2:4])'? – TheClonerx

+0

編集をご覧ください。実際の最後の文字列は少し複雑です。 – Rahul

+4

[私はあなたができないと思う](http://stackoverflow.com/a/14072884/7222134) – TheClonerx

答えて

2

あなたがすることはできません。あなたができるのは、文字列の何文字を印刷するか(スライスの終わりを指定するのとほぼ同じです)を制限することですが、任意の開始または終了のインデックスを指定することはできません。名前の変数に

保存データとformat方法にスライスを渡す、それは彼らが発生したときにエラーを識別するために、パーサーのために、より読みやすくより直感的、かつ簡単です:

mystr = "123456" 
"{} Some text {} some text".format(mystr[:2], mystr[2:4]) 

あなたはいくつかを移動することができますそれから、フォーマット文字列への仕事のあなたが本当にしたかったが、それは大きな改善はありません(とスライスがとにかく必要とされてしまうとき、実際には、より大きな一時を必要とする)場合:

"{:.2s} Some text {:.2s} some text".format(mystr, mystr[2:]) 
関連する問題