问题描述
我有一个字符串列表 [abc1,abc2,abc3,xyz3,xyz4]
在数字前面具有相同字符串的元素中,我只需要保留输出列表中数字最大的字符串。因此,在 abc1
、abc2
和 abc3
中,应该选择字符串 abc3
。在 xyz3
和 xyz4
之外,应保留 xyz4
。
因此最终列表应包含 [abc3,xyz4]
。
自过去 2 天以来,我一直在思考如何解决这个问题,在尝试了一些方法失败后,我仍然不知道如何做到这一点。我将不胜感激。
解决方法
这个功能正是你所需要的
每一项的第一步分为两部分,数字和字符串
第 2 步如果该蚜虫已存在于字典中,则将其值与当前项目值进行比较。如果较小,则将其值移动到当前数字。 否则我将值保存在字典中。
最后,我们把字典变成了一个列表
def split(items):
biggest=dict()
for i in items:
string = i[:-1]
number = int(i[-1])
if string in biggest:
if biggest[string]<number:
biggest[string]=number
else:
biggest[string]=number
return list([k+str(v) for k,v in biggest.items()])
x = ['abc1','abc2','abc3','xyz3','xyz4']
print(split(x))
输出:
['abc3','xyz4']