【发布时间】:2020-12-10 14:31:00
【问题描述】:
请注意,此模式的最后两个数字(例如 FBXASC048)被指定为数字 (0-9) 的 ascii 代码
输入示例列表 ['FBXASC048009Car', 'FBXASC053002Toy', 'FBXASC050004Human'] 结果示例 ['1009Car', '5002Toy', '2004Human']
在输入列表中搜索任何这些模式的正确方法是什么
num_ascii = ['FBXASC048', 'FBXASC049', 'FBXASC050', 'FBXASC051', 'FBXASC052', 'FBXASC053', 'FBXASC054', 'FBXASC055', 'FBXASC056', 'FBXASC057']
然后将找到的模式替换为转换列表中的一项但不是随机的 因为模式列表中的每个元素只等于 conv_list 中的一个元素
conv_list = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
这是考虑到的解决方案: 它有两个部分
第一部分--> 是查找 ascii 模式[48, 49, 50, 51, 52, 53, 54, 55, 56,57] 然后用正确的十进制匹配(0-9)替换那些 所以我们将得到新的输入列表,将被称为 input_modi_list,其中 ascii 替换为十进制 第二部分->另一个使用固定模式替换使用替换功能的过程,即“FBXASC0” 新列表3
for x in input_modi_list:
y = x.replace('FBXASC0', '')
new_list3.append(new_string)
所以 new_list3 将具有上述两部分的组合结果。
我不知道是否会有一个简单的解决方案或更好的解决方案,也许使用正则表达式 另请注意,我不知道如何用十进制替换 ascii 以获取项目列表
【问题讨论】:
-
我相信你的问题有误:'FBXASC048009Car'应该转换成'0009Car',而不是'1009Car',因为48是0的ASCII码,而不是1。
-
正确,刚刚注意到哈哈哈
标签: python list replace reduce string-matching