我有一本從文本檔案中創建的字典(這有效),但是我需要(關鍵字 = 詞,值 = 詞的類別)。在過去的 40 分鐘里,我一直在搜索 Google 和我的“Python for Dummies”一書,但沒有找到關于如何選擇字典值中的一個類別并將它們全部更改為新值(同一字典)的資訊,而不是創建一個新的)。
資料示例:
藍色
番茄食品
電視物件
(藍色、番茄和電視是關鍵,有色食物和物體是價值)
假設我想將字典中的顏色更改為 1,食物更改為 2,物件更改為 3,即:
藍色 1
番茄 2
電視 3
這些不是我字典中唯一的條目,因此它需要能夠一次性更改某種型別的所有值。
有沒有辦法使用 for 回圈和嵌套在里面的 if elif 回圈來實作這一點?
for value in objects.values():
if value = "colour"
.............
還是我完全不知道我需要做什么?
uj5u.com熱心網友回復:
你可以這樣做:
D = {
'Blue': 'colour',
'Tomato': 'food',
'Television': 'object',
'Banana': 'fruit',
'Red': 'colour'
}
VALUEMAP = {
'colour': 1,
'food': 2,
'object': 3
}
for k, v in D.items():
D[k] = VALUEMAP.get(v, v)
print(D)
{'藍色':1,'番茄':2,'電視':3,'香蕉':'水果','紅色':1}
注意 Banana 的值沒有被修改,因為值映射中沒有對應的條目
uj5u.com熱心網友回復:
您需要為遇到的每個獨特專案創建一個計數。然后將其存盤在字典中。您可以從該字典中創建最終輸出。
objects = {
"Blue": "colour",
"Tomato": "food",
"Television": "object"
}
unique_objects = {}
unique_objects_count = 0
for value in objects.values():
if value not in unique_objects:
unique_objects_count = 1
unique_objects[value] = unique_objects_count
for key, value in objects.items():
objects[key] = unique_objects[value]
print(objects)
輸出
{'Blue': 1, 'Tomato': 2, 'Television': 3}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/358200.html
上一篇:將文本中的值轉換為字典
下一篇:如何在熊貓中使用字典過濾資料框?
