Python 板


LINE

各位版友好, 请问我该如何运用dict转换以下需求? file1: 2>4 1>2 2>3 3>5 3>1 1>4 4>2 . . . 转换成: file2: 1.1>2.1 3.1>1.2 1.3>4.1 4.2>5.1 4.3>3.2 3.3>2.2 2.3>1.4 . . . 即.左边的数字为第几种,而.右边的数字为出现几次, 麻烦各位大大帮帮忙了! 目前撰写的程式为: rfd=open(file1,"r") wfd.open(file2,"w") dict_file=dict() num={} seq={} for line in rfd.read().splitlines(): item1,item2=line.split('>') for item in (item1,item2): if not item in num: num[item]=1 seq[item]=len(num.keys()) else: num[item]+=1 dict_file.setdefault(item,str(seq[item])+"."+str(num[item])) wfd.write(dict_file[item1]+'>'+dict_file[item2]) rfd.close() wfd.close() file2的内容: 1.1>2.1 3.1>1.1 1.1>4.1 . . . 好像在执行dict_file.setdefault那ㄧ句写不进去... 请问我有哪里写错吗? --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 220.137.109.243
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1430140757.A.DBB.html
1F:→ SocketAM2: 这是在帮版友做智力测验吗? 04/27 21:36
不是@@因为我对於dict的用法还不太熟, 因此想要请教其他版友的写法为何 ※ 编辑: Dong0129 (220.137.109.243), 04/27/2015 21:42:22
2F:→ SocketAM2: 看了5分钟才懂 我果然是笨蛋 04/27 21:41
...应该是我表达能力不够好...下次会用比较好的举例方式... ※ 编辑: Dong0129 (220.137.109.243), 04/27/2015 21:52:33
3F:推 mars90226: 这个问题跟你上次问得很像啊? 04/27 22:06
4F:→ mars90226: #1LBrjrc0 (Python) 04/27 22:07
嗯嗯,但有个小地方不同, 上次是如果file1有相同的资料,file2就不给新的代号, 这次想要做到即使是相同资料,也会给新的代号 对於dict的概念还不够熟,目前也正在写程式, 谢谢您! ※ 编辑: Dong0129 (220.137.109.243), 04/27/2015 22:13:03 ※ 编辑: Dong0129 (220.137.109.243), 04/27/2015 22:42:30 ※ 编辑: Dong0129 (220.137.109.243), 04/27/2015 22:42:46 ※ 编辑: Dong0129 (220.137.109.243), 04/27/2015 22:53:31
5F:推 eight0: http://ideone.com/3Jia8U 04/28 09:52
6F:→ penguin7272: http://ideone.com/IZtGxz 04/28 10:47
谢谢你们,有好多种写法啊...慢慢研究,谢谢!! ※ 编辑: Dong0129 (220.137.114.148), 04/28/2015 11:00:30
7F:→ gh40402: setdefault 那行改成 04/28 14:54
8F:→ gh40402: dict_file[item]=str(seq[item]) + "." + str(num[item]) 04/28 14:54
9F:→ gh40402: 就行了吧 04/28 14:54
10F:→ gh40402: 你用 setdefault 的话根本不会更新 所以最後得到都是 x.1 04/28 14:56
嗯...我ㄧ直以为setdefault是设定item对应","之後的资料,後来才发现原来是没有item 时才设定... ※ 编辑: Dong0129 (220.137.114.148), 04/28/2015 15:00:48
11F:→ gh40402: d.setdefaut(k, v) 是说去看d的key有无k 有的话回传d[k] 04/28 15:00
12F:→ gh40402: 没的话就做 d[k] = v 然後回传 v 04/28 15:00
谢谢您! ※ 编辑: Dong0129 (220.137.114.148), 04/28/2015 15:03:53







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:e-shopping站内搜寻

TOP