Re: [问题] 分类后给代号

楼主: Neisseria (Neisseria)   2015-04-16 14:49:22
参考看看
num = {} # for how many times a key appears
seq = {} # for when a key appears
output = []
with open('file1.txt') as f:
for line in f:
k = line.strip()
if not k in num:
num[k] = 1
seq[k] = len(num)
else:
num[k] += 1
output.append(str(seq[k]) + '.' + str(num[k]))
print output # or rearrange and re-direct to file
※ 引述《Dong0129 (阿东)》之铭言:
: file1: file2:
: asia 1.1
: asia 1.2
: usa 2.1
: usa 2.2
: asia 1.3
: eup 3.1
: usa 2.3
: eup 3.2
: . .
: . .
: . .
: 各位版友好,
: 假设File1里有多笔资料,
: 请问有没有办法可以将File1的资料转换如File2呢?
: 麻烦各位了...
作者: tiefblau (tiefblau)   2015-04-16 15:34:00
看一看突然很好奇 len(num) 跟 len(num.keys())会有效能上的差别吗? 如果dict很大的话会真的产一个大key list?
作者: Dong0129 (阿东跟上面讲的情况一样b)   2015-04-16 15:57:00
谢谢您的帮忙...我完全想错方向的样子...原本是想说把file1的资料全部丢到某个阵列然后再比较对于dict的运用还不是很熟...谢谢您,我会拆解一下了解dict怎么运作的...感谢!
作者: uranusjr (←這人是超級笨蛋)   2015-04-16 17:16:00
Python 2 的话有可能会有效能差异, Python 3 应该就还好但不论哪个版本 len(num.keys()) 都是脱裤子放屁
楼主: Neisseria (Neisseria)   2015-04-17 13:08:00
对耶,不用取 key,耍笨了,不好意思 = =|||

Links booklink

Contact Us: admin [ a t ] ucptt.com