我認爲你想GUID是值,而不是鍵,因爲它看起來像你想看到他們分配的東西。 ......但這取決於你的用例。
# list of GUID's/Rhinoceros3d point ids
arrPts = ['D20EA4E1-3957-11d2-A40B-0C5020524153',
'1D2680C9-0E2A-469d-B787-065558BC7D43',
'ED7BA470-8E54-465E-825C-99712043E01C']
# reference each of these by a unique key
ptsDict = dict((i, value) for i, value in enumerate(arrPts))
# now `ptsDict` looks like: {0:'D20EA4E1-3957-11d2-A40B-0C5020524153', ...}
print(ptsDict[1]) # easy to "find" the one you want to print
# basically make both keys: `2`, and `1` point to the same guid
# Note: we've just "lost" the previous guid that the `2` key was pointing to
ptsDict[2] = ptsDict[1]
編輯:
如果你使用一個元組爲重點,以你的字典,它看起來是這樣的:
ptsDict = {(loc, dist, attr3, attr4): 'D20EA4E1-3957-11d2-A40B-0C5020524153',
(loc2, dist2, attr3, attr4): '1D2680C9-0E2A-469d-B787-065558BC7D43',
...
}
如你所知,元組是不可改變的,所以你不能change
你的字典的關鍵,但你可以刪除一個密鑰,並插入另一個:
oldval = ptsDict.pop((loc2, dist2, attr3, attr4)) # remove old key and get value
ptsDict[(locx, disty, attr3, attr4)] = oldval # insert it back in with a new key
爲了有一個關鍵點多個值,你就必須使用列表或設置爲包含的GUID:
{(loc, dist, attr3, attr4): ['D20E...', '1D2680...']}
當你說「鍵的值從1更改爲2,現在在那裏現在有兩個不同的'guid''具有相同的值(2)? – Gerrat