我有一個這樣的字典dico:
id_OS (keys) : List of pages(values)
0 : [A, B]
1 : [C, D, E]
2 : [F, B]
3 : [G, A, B]
我想把它改成這個表格
id_OS : List of index id_pages
0 : [0, 1]
1 : [2, 3, 4]
2 : [5, 1]
3 : [6, 0, 1]
我嘗試了這段代碼,但我沒有得到正確的值索引:
dico = dict(zip(range(len(dico)), zip(range(len(dico.values())))))
任何想法請做
謝謝
uj5u.com熱心網友回復:
這應該有效:
letters = {0: ['A', 'B'], 1: ['C', 'Z']}
for key in letters:
new_list = []
for i in letters[key]:
i = i.lower()
new_list.append(ord(i) - 97)
letters[key] = new_list
我減去了 97 而不是 96(減去 96 的原因在這篇文章中得到了很好的解釋:在 Python 中將字母字母轉換為數字),因為您似乎希望所有內容都被移動,以便 A 像通常那樣是 0 而不是 1 .
輸出:
{0: [0, 1], 1: [2, 25]}
uj5u.com熱心網友回復:
通過您之前的問題,我看到您可以簡化您的任務。我會將 data['PageId'] 型別更改為類別并將類別代碼傳遞給字典。像這樣的東西:
data['codes'] = data['PageId'].astype('category').cat.codes
然后在您的代碼中更改此行:
dico[tup].append(row['PageId'])
進入這個:
dico[tup].append(row['codes'])
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/438550.html
標籤:Python python-3.x 字典
