2017-05-11 13 views
0

アルファベットを反復処理して、文字Zを超えて続けるにはどうすればよいですか?例えば ​​- 、B、C ... Y、X、AA、AB、AC、広告アルファベットをどのように反復するのですか?

momenentで、これは私の配列

letters = [ 
      "a","b","c","d","e","f","g","h","i","k", 
      "l","m","n","o","p","q","r","s","t","u", 
      "v","w","x","y","z", "aa", "ab", "ac", "ad", "ae", 
      "af", "ag", "ah", "ai", "aj", "ak", "al", "am", "an", 
      "ao", "ap", "aq", "ar", "as", "at", "au", "av","aw", "ax", "ay", 
      "az", "ba", "bb", "bc", "bd", "be", "bf", "bg", "bh", "bi", 
      "bj", "bk", "bl", "bm", "bn", "bo", "bp", "bq", "br", "bs", "bt", 
      "bu", "bv","bw", "bx", "by", "bz","ca","cb","cc","cd","ce", 
      "cf","cg","ch","ci","cj","ck","cl","cm","cn","co","cp", 
      "cq","cr","cs","ct","cu","cv","cw"] 

ですが、私はそれがループ内で作成したいです。

+0

何を試しましたか? – stybl

+0

これはC#の一般的なアルゴリズムです:http://stackoverflow.com/a/182924/2436175キーは、除算が0を返すまで、残りの文字をすべてのステップで文字に変換することで除算します。次のステップの値を更新するために '%'(モジュロ)を使用して剰余を取得し、 '//'(フロア分割) 。 – Antonio

+0

@Antonio Urielの2番目のitertoolsベースのソリューションは、モジュラー算術を使いこなすよりもはるかにクリーンだと思います。 –

答えて

1

あなたはこれを試すことができます。

import string 

letters = list(string.ascii_lowercase) 

letters.extend([i+b for i in letters for b in letters]) 

print letters 

をループするために、二重を使用することにより、我々は、リスト内包での反復を置くことができるスペースを節約し、より神託であることを除いて、我々は通常、希望のようにアルファベットを反復処理します。

+2

ちょうどコードをダンプするのではなく、あなたのプログラムが何をしているのか説明してください。今は完全な答えではありません。 – MooingRawr

+0

あなたは正しいです。私の最近の編集を見てください。 – Ajax1234

+1

これは 'zz'で停止したいと仮定しているので、 –

1

string.ascii_lowercaseは小文字のすべてを保持しているため、1つのループ(1文字の文字列)または2つの文字(2文字の文字列)で繰り返し処理することができます。これは:

import string 
list = [] 
for c in string.ascii_lowercase: 
    list.append(c) 

for c1 in string.ascii_lowercase: 
    for c2 in string.ascii_lowercase: 
     list.append(c1+c2) 

print(list) 
+1

ちょうどコードをダンプするのではなく、あなたのプログラムが何をしているのか説明してください。今は完全な答えではありません。 – MooingRawr

0

stringモジュールがトリックを行います。

import string 
alphabets=list(string.ascii_lowercase) 
output=[] # output list 
for a in alphabets: 
    output.append(a) 
for a in alphabets: 
    for b in alphabets: 
     output.append('%s%s' % (a,b)) 
print output 
関連する問題