下面是我的字典資訊
Z = {1: [[7,0],[7,1]],
2: [[3,4],[2,4]],
3: [[0,3],[4,6]]}
下面是我的坐標陣列
X = [[7,0],[0,3],[3,4],[4,6],[7,1],[2,4]]
我要生產的是這個
Y = [1,3,2,3,1,2]
所以基本上 Y 是根據來自 Z 的資訊標記坐標 X。我怎樣才能在 python 中實作這一點?
uj5u.com熱心網友回復:
這是您的問題的快速戳:
Z = {1: [[7,0],[7,1]],
2: [[3,4],[2,4]],
3: [[0,3],[4,6]]}
# Below is my coordinate array
X = [[7,0],[0,3],[3,4],[4,6],[7,1],[2,4]]
# What I want to produce is this
Y1 = [1,3,2,3,1,2]
Y = []
for coord in X:
hit = None
for k in Z:
if coord in Z[k]:
hit = k
break
Y.append(hit)
print(Y)
print(Y1)
uj5u.com熱心網友回復:
如果結構不是太大,您可以將 Z 取反,并將成對組合成字典鍵。但是串列是可變的,因此您必須將它們轉換為元組:
Z = {1: [[7,0],[7,1]],
2: [[3,4],[2,4]],
3: [[0,3],[4,6]]}
X = [[7,0],[0,3],[3,4],[4,6],[7,1],[2,4]]
z = {tuple(p):k for k,l in Z.items() for p in l}
{(7, 0): 1, (7, 1): 1, (3, 4): 2, (2, 4): 2, (0, 3): 3, (4, 6): 3}
Y = [z[tuple(p)] for p in X]
[1, 3, 2, 3, 1, 2]
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/358188.html
下一篇:使用不同的地圖同時映射多個列
