2024-09-30 18:18:46 发布
网友
假设我有一个包含如下字符串的列表:
"00x000s00g00wfds0d" "dkdf00sdf00sdfg00jk" "kf00dfjkd0sdl0sd0f0"
等等。。。混有0的随机字母
但我想按0来排序。我的意思是,我希望排序后的列表看起来像这样:
我把事情按0的相对位置分组。如果这没什么意义,请道歉。在
在排序或排序时使用关键字。。。在
l=["00x000s00g00wfds0d", "dkdf00sdf00sdfg00jk", "kf00dfjkd0sdl0sd0f0"] def stonum(s): ll=[] for i in s: if(i == '0'): ll.append('0') else: ll.append('1') return int(''.join(ll),2) print sorted(l,key=stonum)
编辑
这个解决方案与@SvenMarnarch的基本相同。。。但他的关键功能要优雅得多。在
Regex有点过分,但也有一个解决方案:
lst.sort(key=lambda s: [m.start() for m in re.finditer('0', s)])
您可以使用返回零模式的键函数来执行此操作:
def zeros_pattern(s): return [c == "0" for c in s] list_of_strings.sort(key=zeros_pattern)
在排序或排序时使用关键字。。。在
编辑
这个解决方案与@SvenMarnarch的基本相同。。。但他的关键功能要优雅得多。在
Regex有点过分,但也有一个解决方案:
您可以使用返回零模式的键函数来执行此操作:
相关问题 更多 >
编程相关推荐