简体   繁体   English

Python 按最后三个字符和一个数字对字符串列表中的字符串进行排序

[英]Python sort strings in a list of strings by 3 last characters and a number

I've a list of strings as following:我有一个字符串列表如下:

input = ['foobaraaa1', 'foobaraab1', 'foobaraac1', 'foobaraaa2', 'foobaraab2', 'foobaraacc']

I need to sort it descending by last 4 characters and a rule that numbers < letters and print first output我需要按最后 4 个字符和numbers < letters并首先打印 output 的规则对其进行降序排序

In this case I'd need the output to be foobaraacc在这种情况下,我需要 output 是foobaraacc

my code looks like:我的代码看起来像:

print((f'Latest Released Firmware SM-J400F: ' + sorted(result,key=lambda x: (x[::-4], len(x)),reverse=True)[0]))

But it is not working as needed但它没有按需要工作

Your key function is… strange.你的钥匙 function 是……奇怪。 Why did you put len(x) there?你为什么把len(x)放在那里? IMHO this should be enough:恕我直言,这应该足够了:

print((f'Latest Released Firmware SM-J400F: ' + sorted(result,key=lambda x: x[-4:],reverse=True)[0]))

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM