Python帮助在连字符后进行排序
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Python帮助在连字符后进行排序,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2699字,纯文字阅读大概需要4分钟。
内容图文
![Python帮助在连字符后进行排序](/upload/InfoBanner/zyjiaocheng/662/457c27de8dae44e1b95b7947fdadd929.jpg)
我正在从json请求获取数据.我在这里使用这些行来遍历我的json对象并删除重复项,然后按第一个字符对其进行排序:
for x in resources:
roads.append( os.linesep + x["description"])
TrafficHome = list(set(roads))
TrafficHome.sort()
运行这些文件后,我将得到如下输出:
[u'\r\nAt I-55 - Construction work.', u'\r\nAt Willow Ave - Accident.', u'\r\nAt Wolf Rd/Exit 16 - Accident.', u'\r\nBetween 55th St and Plainfield Rd - Roadwork.', u'\r\nBetween County Farm Rd and Windermere Dr - Roadwork.', u'\r\nBetween Geneva Rd and St Charles Rd - Roadwork.', u'\r\nBetween Jeans Rd and Knoll Wood Rd - Roadwork.', u'\r\nBetween Knoll Wood Rd and Jeans Rd - Roadwork.', u'\r\nBetween Lavergne Ave and Roy Ave - Construction work.', u'\r\nBetween Roy Ave and Lavergne Ave - Construction work.', u'\r\nBetween St Charles Rd and Geneva Rd - Roadwork.', u'\r\nBetween Windermere Dr and County Farm Rd - Roadwork.']
然后运行以下行:
TrafficHome = ' '.join(map(str, TrafficHome))
然后我有一个像这样的字符串:
At I-55 – Construction work.
At Willow Ave – Accident.
At Wolf Rd/Exit 16 – Accident.
Between 55th St and Plainfield Rd – Roadwork.
Between County Farm Rd and Windermere Dr – Roadwork.
Between Geneva Rd and St Charles Rd – Roadwork.
Between Jeans Rd and Knoll Wood Rd – Roadwork.
Between Knoll Wood Rd and Jeans Rd – Roadwork.
Between Lavergne Ave and Roy Ave – Construction work.
Between Roy Ave and Lavergne Ave – Construction work.
Between St Charles Rd and Geneva Rd – Roadwork.
Between Windermere Dr and County Farm Rd – Roadwork.
我想像这样在连字符后面按字母顺序对它进行排序:
At Willow Ave – Accident.
At Wolf Rd/Exit 16 – Accident.
At I-55 – Construction work.
Between Lavergne Ave and Roy Ave – Construction work.
Between Roy Ave and Lavergne Ave – Construction work.
Between 55th St and Plainfield Rd – Roadwork.
Between County Farm Rd and Windermere Dr – Roadwork.
Between Geneva Rd and St Charles Rd – Roadwork.
Between Jeans Rd and Knoll Wood Rd – Roadwork.
Between Knoll Wood Rd and Jeans Rd – Roadwork.
Between St Charles Rd and Geneva Rd – Roadwork.
Between Windermere Dr and County Farm Rd – Roadwork.
在某些情况下,可能会有2个连字符,例如:
At I-55 – Construction work.
因此,我需要考虑一下这一点,我不确定实现此目标的最佳方法.我不知道是否应该尝试操作字符串,或者在将其转换为字符串之前.我对python很陌生,并且将它用于Tasker任务,因为Javascript不适用于我.
任何帮助,指导或意见,我们将不胜感激!
解决方法:
使用lambda函数作为您sorted()中的键可以解决此问题.
sortedlist = sorted(list, lambda x: x.rsplit('-', 1)[-1])
在python 2.x上,您可能必须这样做:
sortedlist = sorted(list, key=lambda x: x.rsplit('-', 1)[-1])
rsplit(‘-‘,1)将您的列表分为2部分,从-的最后一个实例开始.只要您在字符串末尾的状态不包含连字符,就可以使用此方法.
内容总结
以上是互联网集市为您收集整理的Python帮助在连字符后进行排序全部内容,希望文章能够帮你解决Python帮助在连字符后进行排序所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。