Python 重新排列36位数字?

Python 重新排列36位数字?,python,encode,Python,Encode,我是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

我是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 '+'
这是编码的其余部分

print(encode(1234567890))
'IBWb91'
同样,是否有方法为输出的六个字符创建顺序

这就是我目前所拥有的。我从一个现存的问题中得到了这个

但是…它给了我这个:

IndexError: list index out of range
我想发生的事:

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

我对这个完全陌生。请帮助:)

python中的列表是从
0
开始索引的,而不是从
1
开始索引的。如果您想用显示的方法对
n
-元素列表重新排序,则需要一个包含编号
0,1,…,n-1
的列表,因为尝试访问
n
-元素列表中的元素
n
,将给出一个 错误,因为索引将超出预期范围

比如说,你所付出的

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

python中的列表从
0
开始编制索引,而不是从
1
开始编制索引。如果您想用显示的方法对
n
-元素列表重新排序,则需要一个包含编号
0,1,…,n-1
的列表,因为尝试访问
n
-元素列表中的元素
n
,将给出一个 错误,因为索引将超出预期范围

比如说,你所付出的

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

顺序必须为零索引。python列表就是这样工作的——第一个元素是
mylist[0]
,第二个元素是
mylist[1]
,等等。因此,它应该是
[5,4,3,2,1,0]
顺序必须为零索引。python列表就是这样工作的——第一个元素是
mylist[0]
,第二个元素是
mylist[1]
,等等。因此,它应该是
[5,4,3,2,1,0]
如果您只想反转列表,只需调用
reverse
方法或
reversed
函数:

>>> mylist = ['a','b','c','d','e','f']
>>> list(reversed(mylist))
['f', 'e', 'd', 'c', 'b', 'a']
如果您想以艰难的方式完成,您可以,但您必须使用列表中实际包含的索引:

>>> [i for i, e in enumerate(mylist)]
[0, 1, 2, 3, 4, 5]

这些是列表中的索引。6不是其中之一。因此,如果您尝试使用
mylist[6]
您将得到一个
索引器。您可能想要的是
[5,4,3,2,1,0]
如果您只想反转列表,只需调用
reverse
方法或
reversed
函数:

>>> mylist = ['a','b','c','d','e','f']
>>> list(reversed(mylist))
['f', 'e', 'd', 'c', 'b', 'a']
如果您想以艰难的方式完成,您可以,但您必须使用列表中实际包含的索引:

>>> [i for i, e in enumerate(mylist)]
[0, 1, 2, 3, 4, 5]

这些是列表中的索引。6不是其中之一。因此,如果您尝试使用
mylist[6]
您将得到一个
索引器。您可能想要的是
[5,4,3,2,1,0]

您只是想反转列表,还是需要更复杂的东西?您只是想反转列表,还是需要更复杂的东西?