for i in range(65, 123)
92から96を省略して65から91まで、97から123の範囲(大文字と小文字のASCII)にしたいが、1つの開始値と1つの停止値しか入力できません。それらを省略したり、異なる開始値と終了値を設定する方法はありますか?python 3でrange()に開始点と終了点を2つ設定する方法はありますか?
あなたが チェーンitertools.chain
を使用して 2つの範囲のオブジェクトができ
for i in range(65, 123)
92から96を省略して65から91まで、97から123の範囲(大文字と小文字のASCII)にしたいが、1つの開始値と1つの停止値しか入力できません。それらを省略したり、異なる開始値と終了値を設定する方法はありますか?python 3でrange()に開始点と終了点を2つ設定する方法はありますか?
あなたが チェーンitertools.chain
を使用して 2つの範囲のオブジェクトができ
:あなたはitertools.chain
を使用することができます
>>> from itertools import chain
>>> chain(range(5), range(9, 14))
<itertools.chain object at 0x101a8e588>
>>> list(_)
[0, 1, 2, 3, 4, 9, 10, 11, 12, 13]
from itertools import chain
for i in chain(range(65, 91), range(97, 123)):
...
これは素晴らしい仕事でした。ありがとうございました。 – Manuel
:
import itertools
for i in itertools.chain(range(65, 92), range(97, 123)):
まず、あなたが「マジックナンバーを使用しないでくださいあなたのコードで。 65が 'A'のASCIIコードであれば、そう言う:ord('A')
。第二に、あなたは1つのリストに二つのリストを結合し、それを反復処理することができます。
for i in list(range(ord('A'),ord('Z')+1)) + list(range(ord('a'),ord('z')+1)):
list(range(65,92)) + list(range(97,124))
意志出力:
[65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123]
@KevinW。それは重複していますが、その質問はPython2について明示的ですが、これはPython 3に関するものです。少なくとも、戻り値と関数名は異なります。 –