任意の文字列でパディング

これは知らなかった.びっくり.

A generic version of python’s str.zfill that supports arbitrary fillers?-StackOverflow

ゼロパディングは簡単で,

'123'.zfill(5)

‘00123’

f'{123:05d}' #'{:05d}'.format(123)

‘00123’

このdは別に要らなくて,

f'{123:05}' #'{:05}'.format(123)

‘00123’

フォーマット指定子が要らないって事は,要は整数でも文字列でも同じ様に書けて,
(文字列の場合,「桁」がないので,右揃えか左揃えか指定する必要)

f'{"123":>05}'

‘00123’

f'{"123":<05}'

‘12300’

任意の文字列でパディングする場合,ビルトイン関数があって,

'12'.rjust(5, '#')

‘###12’

'12'.ljust(5, '#')

’12###’

でも,凄いなと思ったのは,

f'{"123":{"#"}>{5}}' #'{string:{fill}>{num}}'.format(string='123', fill='#', num=5)

‘##123’

f'{"123":{"#"}>5}'

‘##123’

f'{"123":{"#"}<{5}}'

‘123##’

ドキュメントにちゃんとネストされたアーギュメントについて書いてあった.

6.1.3.2. Format examples – Python 3.6.2 documentation

広告
カテゴリー: 未分類 パーマリンク

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中