0

次のような電話番号があるとしましょう:

05395042123

次のような形式に変換したい:

xxxxx xxx xx xx

どうすればいいですか?誰でも関数を持っていますか?

4

1 に答える 1

11

手動で行うのは非常に簡単です。フォーマットが 1 つしかない場合は、これがおそらく最良のアイデアです。

def phone_split(x):
  return ' '.join([x[0:4], x[4:7], x[7:9], x[9:]])

編集:

そして、より普遍的な方法:

def phone_split(x, format=[4,3,2,2]):
  parts = []
  reduce(lambda x, y: parts.append(x[:y]) or x[y:], format, x)
  return ' '.join(parts)

append()結果を蓄積するために副作用を使用しor、ラムダのワンライナー要件を満たすために使用しています。

EDIT2:

おそらく Django テンプレート内でそれを使用したいと思うでしょう。その場合は、上記のコードを使用してカスタム テンプレート タグを定義し、単純なフィルターとして登録することをお勧めします。

于 2012-05-30T12:43:56.017 に答える