[英]How to calculate the difference of the values in a dictionary in python?
我有一本看起來像這樣的字典(為清楚起見,使用空格):
dic={'848613': [-0.22307240991541583, -0.46447953845401646, -0.1864029726690461,
-0.17906908521977213, -0.22246125262797634, -0.09472937955312179,
-0.2884662396714418, -0.3703613161883342],
'820434': [-0.09142433555202074, -0.15535959723873796, -0.1402251633128967,
-0.2680956866863311, -0.2226923849088073, -0.28353898661065896,
-0.1501088752644665, -0.17976001111917592],
'846353': [0.12422057244522786, 0.1500662052036628, 0.15781989503119326,
0.176881049190539, 0.17090424661515094, 0.13956641689554858,
0.11129775606601039, 0.0794753207321874]}
我想計算同一鍵中兩個值之間的差異,例如,前兩個值之間的差異為0.241407128539。 到目前為止,我使用的代碼是:
x=[]
z=[]
l=0
for a in dic:
x.append(dic[a])
y=list(itertools.chain.from_iterable(x))
a=0
b=1
d=len(y)-1
for c in range(d):
z.append(y[a]-y[b])
a+=1
b+=1
print z
但是,當使用了一個鍵的所有值並將它們與下一個鍵組合后,該代碼將繼續。 這樣,它還可以計算鍵的最后一個值和下一個鍵的第一個值之間的差。 有沒有解決這個問題的好方法,還是我必須剔除所有錯誤的數字?
你是極大的過於復雜的代碼。 如果要減去每個列表的前兩個值,則直接在字典項上循環:
for key, values in dic.iteritems():
print key, values[0] - values[1]
演示:
>>> dic={'848613': [-0.22307240991541583, -0.46447953845401646, -0.1864029726690461,
... -0.17906908521977213, -0.22246125262797634, -0.09472937955312179,
... -0.2884662396714418, -0.3703613161883342],
... '820434': [-0.09142433555202074, -0.15535959723873796, -0.1402251633128967,
... -0.2680956866863311, -0.2226923849088073, -0.28353898661065896,
... -0.1501088752644665, -0.17976001111917592],
... '846353': [0.12422057244522786, 0.1500662052036628, 0.15781989503119326,
... 0.176881049190539, 0.17090424661515094, 0.13956641689554858,
... 0.11129775606601039, 0.0794753207321874]}
>>>
>>> for key, values in dic.iteritems():
... print key, values[0] - values[1]
...
848613 0.241407128539
820434 0.0639352616867
846353 -0.0258456327584
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.