gpt4 book ai didi

python - 重新排列 36 位数字?

转载 作者:太空宇宙 更新时间:2023-11-04 10:42:57 25 4
gpt4 key购买 nike

我是 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 '+'

token 将数字(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'

同样,有没有办法为输出的六个字符创建一个顺序?

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

How can I reorder a list in 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']

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

最佳答案

如果只是想反转列表,调用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],您将得到一个 IndexError。您可能想要的是 [5, 4, 3, 2, 1, 0]

关于python - 重新排列 36 位数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19392892/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com