python课后习题

weixin_35731425 2016-12-16 09:17:25
myseq = '''[a:1,b:2,c:3]
[a:3,b:3,c:8]
[a:7,c:4,m:7,r:4]
[a:2,c:4,m:6,r:4]
[a:3,b:2,c:4,o:5]'''

现要求去除其中重复的关键字,如上例的处理结果为:
‘[a:1,b:2,c:3]' ,'[a:7,c:4,m:7,r:4]' ,'[a:3,b:2,c:4,o:5]'

【提示】:建议尽量使用列表推导来处理,提出每个行中的键值,然后去除重复
...全文
286 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
混沌鳄鱼 2016-12-17
  • 打赏
  • 举报
回复

Python 2.7.12 (v2.7.12:d33e0cf91556, Jun 27 2016, 15:24:40) [MSC v.1500 64 bit (AMD64)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> myseq = '''[a:1,b:2,c:3]
[a:3,b:3,c:8]
[a:7,c:4,m:7,r:4]
[a:2,c:4,m:6,r:4]
[a:3,b:2,c:4,o:5]'''

>>> from collections import OrderedDict
>>> def func(dic, line):
key = tuple(map(lambda x:x.split(':')[0], line.strip('[]').split(',')))
if key not in dic:
dic[key] = line
return dic

>>> ','.join(reduce(func, myseq.splitlines(), OrderedDict()).values())
'[a:1,b:2,c:3],[a:7,c:4,m:7,r:4],[a:3,b:2,c:4,o:5]'
>>>

37,720

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧