当前位置: 首页 > 知识库问答 >
问题:

重新排列36位数字?

郎成龙
2023-03-14

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

同样,是否有方法为输出的六个字符创建顺序?

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

如何在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'] 

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

共有3个答案

平光明
2023-03-14

顺序必须为零索引。python列表就是这样工作的——第一个元素是mylist[0],第二个元素是mylist[1],等等。因此,它应该是[5,4,3,2,1,0]

黄飞翮
2023-03-14

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]
长孙逸仙
2023-03-14

如果您只想反转列表,只需调用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]

 类似资料:
  • 问题内容: 我有一个4d numpy数组,该数组代表具有3d实例的数据集。可以说数组的形状是。 如何将数组的形状更改为? -–问题更新似乎rollaxis和transpose都能解决问题。 感谢您的回复! 问题答案: 该函数完全可以实现您想要的功能,您可以传递轴参数来控制要交换的轴: b的轴是a的轴的置换版本:b的轴0是a的第3轴,b的轴1是a的第0轴,依此类推… 这样,您可以在第二或第三位指定要

  • 问题内容: 我在python / pyspark中有一个带有列的数据框 ,依此类推...... 现在,我在此数据框中添加了新列。 现在,我必须安排这样的列的列来后 我已经完成如下 我收到此错误 为什么会发生此错误。我该如何纠正。 问题答案: 您可以用来更改列的顺序:

  • 问题内容: 有没有办法将numpy 2D数组中的列顺序更改为新的任意顺序?例如,我有一个数组 我想将其更改为 通过应用排列 在列上。因此,在新矩阵中,我希望将原始文档的第一列保留在原位置,将第二列移至最后一列,依此类推。 有一个numpy函数可以做到吗?我有一个相当大的矩阵,并且希望得到更大的矩阵,因此我需要一个可以在可能的情况下快速且适当地执行此操作的解决方案(置换矩阵是不可行的) 谢谢。 问题

  • 如果我使用,我的数据有3586列。如何重新排序数据序列? 我使用了这个(基于此问题,根据列名对pandas dataframe中的列重新排序),但仍不起作用。 谢谢你们

  • 问题内容: 假设有两个没有同步的线程,一个设置另一个执行。 在下文中,“读取”始终指字段的读取。 以下输出可能吗? 答案是肯定的,因为即使读1发生在读2之前,但是由于读2不会改变线程内执行的语义,因此仍可能在读1之前对读2重新排序。 这个推理正确吗? 问题答案: 发生在前并不意味着两个任意操作的顺序。更精确地说,出现这种情况,之前所做的最重要的事情是占用 的写入 和 读取 在 之前发生的一致性 。

  • 问题内容: 我需要移动现有列的位置(以获得更好的可见性)。 如何做到这一点而又不影响数据? 问题答案: 修改也可以。看一看: