次のようにPythonで文字範囲を実行する方法はありますか?
for x in range(a,h,)
何かのようなもの:
[chr(i) for i in range(ord('a'),ord('h'))]
反復するアルファベット文字のリストが表示され、ループで使用できます
for x in [chr(i) for i in range(ord('a'),ord('h'))]:
print(x)
またはこれは同じことをします:
for x in map(chr, range(*map(ord,['a', 'h']))):
print(x)
ord()
文字を文字の序数に変換したり、元に戻したりするために使用できます。
def char_range(start, end, step=1):
for char in range(ord(start), ord(end), step):
yield chr(char)
それはうまく機能しているようです:
>>> ''.join(char_range('a', 'z'))
'abcdefghijklmnopqrstuvwxy'
組み込みの文字範囲はありませんが、次のように書くことができます。
def letter_range(start, stop):
for c in xrange(ord(start), ord(stop)):
yield chr(c)
for x in letter_range('a', 'h'):
print x,
プリント:
a b c d e f g
import string
def letter_range(f,l,al = string.ascii_lowercase):
for x in al[al.index(f):al.index(l)]:
yield x
print ' '.join(letter_range('a','h'))
結果
a b c d e f g
これは、少なくとも私にとっては読みやすく、理解しやすいです(また、どの文字をどの順序で含めるかを簡単にカスタマイズできます):
letters = 'abcdefghijklmnopqrstuvwxyz'
for each in letters:
print each
result:
a
b
c
...
z