如何解决用字母“配对”或“匹配”数字
我正在尝试将字母“ A-Z”上的字母与数字1-26和数字0-9与48-57进行匹配。我知道我可以用ASCII表完成字母部分,但是我想知道Python中是否有一种快速或简单的方法来定义这种行为:
- 定义一个字母和数字的列表(为便于理解,我们将其称为List1)。
- 定义数字列表(List2)
- 将第一个列表中的每个项目与第二个列表中相同的位置相关联。
这个想法是要能够传递一个数字列表(List2)并在List1上返回它们的对应项。
这是为了对ADS-B数据进行解码以进行平面识别。更多信息here。
解决方法
定义一个字母和数字的列表(为便于理解,我们将其称为List1)。
>>> import string
>>> list1 = string.ascii_uppercase + string.digits
>>> list1
'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'
定义数字列表(List2)。
我正在尝试将字母“ A-Z”上的字母与数字1-26和数字0-9与48-57进行匹配。
>>> list2 = list(range(1,27))+list(range(48,58))
>>> list2
[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,48,49,50,51,52,53,54,55,56,57]
将第一个列表中的每个项目分配给第二个列表中相同位置的项目。
这将创建数字到字符的字典:
>>> table = dict(zip(list2,list1))
>>> table
{1: 'A',2: 'B',3: 'C',4: 'D',5: 'E',6: 'F',7: 'G',8: 'H',9: 'I',10: 'J',11: 'K',12: 'L',13: 'M',14: 'N',15: 'O',16: 'P',17: 'Q',18: 'R',19: 'S',20: 'T',21: 'U',22: 'V',23: 'W',24: 'Y',25: 'X',26: 'Z',48: '0',49: '1',50: '2',51: '3',52: '4',53: '5',54: '6',55: '7',56: '8',57: '9'}
这个想法是要能够传递一个数字列表(List2)并在List1上返回它们的对应项。
>>> def lookup(L):
... return ''.join([table[x] for x in L])
...
>>> lookup([1,49])
'ABC01'
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。