1

私はPythonのアマチュアです。長い文字列をエンコードして6文字を出力するプログラムを作成しました。

def token (n):
    if n < 10:
        return chr( ord( '0' ) + (n) )
    if n in range (10, 36):
        return chr( ord( 'A' ) - 10 + (n))
    if n in range (37, 62):
        return chr( ord( 'a' ) - 36 + (n))
    if n is 62:
        return '-'
    if n is 63:
        return '+'

トークンは数字 (n) を文字に変換します。「-」と「+」を含む大文字と小文字。

def encode (n):
    a = n // 1 % 64
    b = n // 64 % 64
    c = n // 64 ** 2 % 64
    d = n // 64 ** 3 % 64
    e = n // 64 ** 4 % 64
    f = n // 64 ** 5 % 64
    return (token(a) + token(b) + token(c) + token(d) + token(e) + token(f))

これがエンコードの残りです。

print(encode(1234567890))
'IBWb91'

繰り返しますが、出力用の 6 文字の順序を作成する方法はありますか?

これは私がこれまでに持っているものです。これは既存の質問から取得しました。

Pythonでリストを並べ替えるにはどうすればよいですか?

mylist = ['a','b','c','d','e','f',]
myorder = [6,5,4,3,2,1]
mylist = [ mylist[i] for i in myorder]

しかし...それは私にこれを与えます:

IndexError: list index out of range

私がしたいこと:

>>> print(mylist)
['f','e','d','c','b','a'] 

私はこれにまったく新しいです。助けてください :)

4

3 に答える 3

1

注文はゼロインデックスでなければなりません。これが python リストの仕組みです。最初の要素はmylist[0]、2 番目の要素はmylist[1]などです。したがって、 である必要があります[5,4,3,2,1,0]

于 2013-10-15T23:40:11.950 に答える