在python中浮动的字母数字组合

2024-09-30 20:37:12 发布

您现在位置:Python中文网/ 问答频道 /正文

def computefeatures(node_id):
    return [ord(node_id), len(node_id)]

我正在计算节点ID的特性,这些特性是字母和数字的组合。作战需求文件将不起作用,是否有其他的解决办法

我的名单是:

ln0
Out[88]: 
0     C1
1     C2
2     C3
3     C4
4     C5
5     C6
6     G1
7     I1
8     O1
9     P1
10    P2
11    P3
12    R1
13    R2
14    R3
15    R4
16    R5
17    R6
dtype: object

Tags: 文件idnodelenreturn节点def字母
1条回答
网友
1楼 · 发布于 2024-09-30 20:37:12

如果您的节点由一个字母后跟一个整数组成,并且您只需要将它们映射到浮点数,那么可以通过多种方式实现

一种方法是将节点id转换为浮点方法hex(例如,(3.14).hex() = '0x1.91eb851eb851fp+1')返回的十六进制字符串。取字母的ord,将其转换为十六进制字符串,并将其用作尾数的小数部分。取整数部分作为指数。创建字符串后,使用类方法float.fromhex将其映射到浮点:

def compute_feature(node_id):
    n = ord(node_id[0])
    i = node_id[1:]
    hex_string = '0x1.' + hex(n)[2:] + 'p+' + i
    return float.fromhex(hex_string)

比如说,

>>> compute_feature('C1')
2.5234375

这种方法有一个很好的特性,即可以使用float方法hex和少量解析来从float恢复节点id

相关问题 更多 >