鱼C论坛

 找回密码
 立即注册
查看: 2951|回复: 9

[已解决]python新手问题求解

[复制链接]
发表于 2016-1-16 23:48:03 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
请教一个问题如下
设有以下信息字符串:
myseq="""[a:1,b:2,c:3]
[a:3,b:3,c:8]
[a:7,c:2:m:7,r:4]
[a:2,c:4:m:6,r:4]
[a:3,b:2,c:7,o:5]"""
要求去除其中的重复关键字,处理结果为:
'[a:1,b:2,c:3]','[a:7,c:2:m:7,r:4]','[a:3,b:2,c:7,o:5]'
使用列表推导来处理,提取每个行中的键值,然后去除重复。
最佳答案
2016-1-18 14:43:53
这么巧,恰好做了这道题。
  1. myseq = """[a:1,b:2,c:3]
  2. [a:3,b:3,c:8]
  3. [a:7,c:2,m:7,r:4]
  4. [a:2,c:4,m:6,r:4]
  5. [a:3,b:2,c:7,o:5]"""

  6. res_keys, res_strs = [], []

  7. for item in myseq.split('\n'):
  8.     # 获取key
  9.     item_keys = [raw_item.split(':')[0] for raw_item in item[1: len(item) - 1].split(',')]
  10.     # 判断是否有key的列表,然后决定是否放进去。
  11.     for key_list in res_keys:  # 已存['a', 'b', 'c']
  12.         list_r = [a for a in item_keys if a in key_list]
  13.         long_len = len(item_keys) if len(item_keys) >= len(key_list) else len(key_list)
  14.         if len(list_r) >= long_len:
  15.             break
  16.     else:
  17.         res_keys.append(item_keys)
  18.         res_strs.append(item)

  19. print(', '.join(res_strs))
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-1-18 14:43:53 | 显示全部楼层    本楼为最佳答案   
这么巧,恰好做了这道题。
  1. myseq = """[a:1,b:2,c:3]
  2. [a:3,b:3,c:8]
  3. [a:7,c:2,m:7,r:4]
  4. [a:2,c:4,m:6,r:4]
  5. [a:3,b:2,c:7,o:5]"""

  6. res_keys, res_strs = [], []

  7. for item in myseq.split('\n'):
  8.     # 获取key
  9.     item_keys = [raw_item.split(':')[0] for raw_item in item[1: len(item) - 1].split(',')]
  10.     # 判断是否有key的列表,然后决定是否放进去。
  11.     for key_list in res_keys:  # 已存['a', 'b', 'c']
  12.         list_r = [a for a in item_keys if a in key_list]
  13.         long_len = len(item_keys) if len(item_keys) >= len(key_list) else len(key_list)
  14.         if len(list_r) >= long_len:
  15.             break
  16.     else:
  17.         res_keys.append(item_keys)
  18.         res_strs.append(item)

  19. print(', '.join(res_strs))
复制代码

评分

参与人数 1荣誉 +5 鱼币 +5 收起 理由
冬雪雪冬 + 5 + 5 热爱鱼C^_^

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-1-19 18:40:19 | 显示全部楼层
zerotens 发表于 2016-1-18 14:43
这么巧,恰好做了这道题。

太好了,感谢感谢!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-1-19 19:21:27 | 显示全部楼层

其实还有后面其他题目,话说你看的书是“21天学通python”吧~~
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

头像被屏蔽
发表于 2016-1-20 08:21:11 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-1-20 08:47:44 | 显示全部楼层
zerotens 发表于 2016-1-19 19:21
其实还有后面其他题目,话说你看的书是“21天学通python”吧~~

是的,你也是吧想找培训的,但找不到只好自己学,你也是自学吗
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-1-20 08:57:10 | 显示全部楼层
zerotens 发表于 2016-1-19 19:21
其实还有后面其他题目,话说你看的书是“21天学通python”吧~~

有没有什么学习的好方法,自学的好吃力!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-1-20 13:37:54 | 显示全部楼层
冬天的哈根达斯 发表于 2016-1-20 08:47
是的,你也是吧想找培训的,但找不到只好自己学,你也是自学吗

恩恩,也是自学的呢,培训的话,感觉也不好找的呢~
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-1-20 13:38:54 | 显示全部楼层
冬天的哈根达斯 发表于 2016-1-20 08:57
有没有什么学习的好方法,自学的好吃力!

就是多找东西看吧先,语言嘛,跟英语类似,就是不断的学习,不断的使用,然后熟练了就好了。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-1-20 18:33:01 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-2-19 07:50

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表