pythonで英数字の番号をインクリメントするには?

クロスカントリー:

私は、A001とA999までのA002、A003を4桁の数字を開始生成しています16個の文字の英数字のパスキーを作成しています。それはA999まで行くたら、Bと数字にアルファベット意志の自動増加は再び001で開始し、同じプロセスは、Z999まで行きます。いったんAZシリーズはオーバー、それはAA01で始まるというようになります。どのようにPythonでこのことを行うには?私はPythonで新しいですように私は自分自身でそれを試してみましたが、またいくつかの例を試してみましたが、私は文字の増分を作ることができませんので。任意のアイデアや考えをいただければ幸いです。

どうもありがとう

rec=0
new_list16 = []
def autoIncrement():
    global rec
    first = 'A'
    i = chr(ord(first))
    new_list16.append(i)

    while True:
        pStart = 1 #adjust start value, if req'd 
        pInterval = 1 #adjust interval value, if req'd
        if (rec == 0):
            rec += pStart
        else:
            rec = rec + pInterval
        return str(rec).zfill(3)
#print(autoIncrement())
new_list16.append(autoIncrement())

print(*new_list16, sep = '')
tobias_k:

行くA999B001代わりにすることはB000、本当に少しアップ物事を台無し、あなたはまだ使用することができ、これを AZ部分のために、と数字のための簡単なモジュロ演算。

def excel_format(num):
    # see https://stackoverflow.com/a/182924/1639625
    res = ""
    while num:
        mod = (num - 1) % 26
        res = chr(65 + mod) + res
        num = (num - mod) // 26
    return res

def full_format(num, d=3):
    chars = num // (10**d-1) + 1 # this becomes   A..ZZZ
    digit = num %  (10**d-1) + 1 # this becomes 001..999
    return excel_format(chars) + "{:0{}d}".format(digit, d)

for i in range(10000):
    print(i, full_format(i, d=2))

数値部分の桁数はオプションで制御されるdパラメータ。私が使用します2デモンストレーションの目的ではなく、3同じようにうまく動作します。

0 A01
...
98 A99
99 B01
...
2573 Z99
2574 AA01
...
9998 CW99
9999 CX01

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=13291&siteId=1