私はJavaとCから来たPythonを初めて使用します。文字をインクリメントするにはどうすればよいですか?JavaまたはCでは、charとintは実質的に交換可能であり、特定のループでは、charをインクリメントし、charで配列にインデックスを付けることができると非常に便利です。
Pythonでこれを行うにはどうすればよいですか?従来のfor(;;)ルーパーがないのは十分に悪いことです-戦略全体を再考することなく、達成したいことを達成できる方法はありますか?
Python 2.xでは、ord
andchr
関数を使用するだけです。
>>> ord('c')
99
>>> ord('c') + 1
100
>>> chr(ord('c') + 1)
'd'
>>>
Python 3.xは、バイトとユニコードを明確に区別しているため、これをより整理された興味深いものにします。デフォルトでは、「文字列」はユニコードであるため、上記は機能します(ord
Unicode文字を受け取りchr
、それらを生成します)。
ただし、バイト(バイナリデータストリームの処理など)に関心がある場合は、さらに簡単です。
>>> bstr = bytes('abc', 'utf-8')
>>> bstr
b'abc'
>>> bstr[0]
97
>>> bytes([97, 98, 99])
b'abc'
>>> bytes([bstr[0] + 1, 98, 99])
b'bbc'
「従来の for(;;) ルーパーがないのは十分に悪い」?? 何?
しようとしていますか
import string
for c in string.lowercase:
...do something with c...
または、またはを使用している可能性がありますstring.uppercase
かstring.letters
?
for(;;)
多くの場合、より良い方法があるため、Pythonにはありません。また、必要がないため、文字計算もありません。