如何分离文字和数字
这里有[罗恩120,哈利波特383,赫敏524,马尔福246]我想实现把他们的分数提取出来用于比较大小,请问怎么将汉字和数字分离呀?谢谢啦 看规律分数都是这个列表里元素的后3位,所以可以试一下使用列表的负数索引
list1=['罗恩120','哈利波特383','赫敏524','马尔福246']
list2=[]
list3=[]
for each in list1:
list2.append(each[:-3])
list3.append(each[-3:])
结果出来应该是这样的
>>> list2
['罗恩', '哈利波特', '赫敏', '马尔福']
>>> list3
['120', '383', '524', '246']
如果数字不一定是三个数字,也可以试试用正则表达式:import re
arr = ["罗恩120", "哈利波特383", "赫敏524", "马尔福246"]
res = dict()
for i in arr:
value = re.findall(r"+$", i)
key = re.findall(r"^[\u4e00-\u9fa5]+", i)
res] = int(value)
print(res){'罗恩': 120, '哈利波特': 383, '赫敏': 524, '马尔福': 246} 傻眼貓咪 发表于 2022-1-13 16:24
如果数字不一定是三个数字,也可以试试用正则表达式:
有更简单点的方法吗?我还没学到这些,看不懂{:5_100:} nettkd 发表于 2022-1-13 21:19
有更简单点的方法吗?我还没学到这些,看不懂
arr = ["罗恩120", "哈利波特383", "赫敏524", "马尔福246"]
res = dict() # 创建新字典
for name in arr:
key = ""
value = ""
for c in name:
if c.isdigit(): # 数字
value += c
else: # 不是数字
key += c
res = int(value) # 存入字典
print(res) 傻眼貓咪 发表于 2022-1-13 23:11
谢谢啦
页:
[1]