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