ページ 11

pythonにおける辞書の作成。

Posted: 2015年4月12日(日) 17:20
by haana
pythonを用いて
aからz
aaからzz
aaaからzzz
と文字列を作るにはどうしたらいいのでしょうか。

数字を扱うのであれば

コード:


for i in range(101):
  print i


とすれば0から100までの数字を羅列できますが、文字列操作がわかりません。

Re: pythonにおける辞書の作成。

Posted: 2015年4月12日(日) 18:01
by みけCAT
再帰を用いると、比較的楽に作れると思います。

コード:

def zisyo(n):
    if n < 1:
        return
    for c in range(ord("a"), ord("z") + 1):
        if n == 1:
            yield chr(c)
        else:
            for s in zisyo(n - 1):
                yield chr(c) + s

for i in range(1, 3 + 1):
    for s in zisyo(i):
        print(s)
オフトピック
メモ:Pythonのchr/ord関数はASCIIまたはUnicodeを用いるので、a~zの文字コードは連続している。
2. 組み込み関数 — Python 2.7ja1 documentation
2. 組み込み関数 — Python 3.3.6 ドキュメント

Re: pythonにおける辞書の作成。

Posted: 2015年4月12日(日) 23:57
by かずま
こんなのは、いかがですか?

コード:

def proc(s, n):
    if n <= 0:
        print s
    else:
        for i in range(26):
            proc(s + "abcdefghijklmnopqrstuvwxyz"[i], n - 1)
 
for i in range(3):
    proc("", i + 1);