Pig*_*gna 5 python sorting list python-2.7
我有一个字符串列表,我需要通过某个字符的外观来命令它,比方说"+".所以,例如,如果我有这样的列表:
["blah+blah", "blah+++blah", "blah+bl+blah", "blah"]
Run Code Online (Sandbox Code Playgroud)
我需要得到:
["blah", "blah+blah", "blah+bl+blah", "blah+++blah"]
Run Code Online (Sandbox Code Playgroud)
我一直在研究这种sort()方法,但我不完全了解如何将密钥参数用于复杂的订单标准.显然sort(key=count("+"))不起作用.可以像我想要的那样订购列表,sort()还是我需要为它制作一个功能?
vau*_*tah 11
是的,list.sort可以这样做,但你需要指定key参数:
In [4]: l.sort(key=lambda x: x.count('+'))
In [5]: l
Out[5]: ['blah', 'blah+blah', 'blah+bl+blah', 'blah+++blah']
Run Code Online (Sandbox Code Playgroud)
在此代码key函数中,接受单个参数并用于str.count 计算其中的出现次数'+'.
至于如果你定义像这样的函数list.sort(key=count('+'))你可以让它工作:countoperator.methodcaller
count = lambda x: methodcaller('count', x) # from operator import methodcaller
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1859 次 |
| 最近记录: |