2010-12-10 79 views
1

I`ve一個這樣定義的字典:元組比較

d = {"date": tuple(date),"open":tuple(open),"close":tuple(close),"min":tuple(min),"max":tuple(max),"MA":tuple(ma)} 

每個元組的那些中的一箇中包含的值的列表(相同數量的每個元組值的),如何可以迭代槽paticular的每個值比較「關閉」是否優於「MA」的鍵?

+0

建議編輯:「每個元組值相同*數量*」,而不是「每個元組值相同*數量*」。 – systemovich 2010-12-10 10:47:49

+0

是有道理的,編輯 – 2010-12-10 10:56:28

回答

1

我錯過了什麼? d['close'] > d['MA']

編輯:回覆,您的意見

[...]我想返回多少次的一個元素「親密」是>到MA的匹配元素。 (相同的元組索引)

sum(pair[0] > pair[1] for pair in zip(d['close'], d['MA'])) 
1

Python docs

元組和列表字典順序使用相應的元件的比較比較。這意味着爲了比較相等,每個元素必須相等並且兩個序列必須是相同類型並且具有相同長度。

如果不相等,序列的順序與第一個不同的元素相同。例如,cmp([1,2,x],[1,2,y])與cmp(x,y)的返回值相同。如果相應的元素不存在,則較短的序列首先排序(例如,[1,2] < [1,2,3])。

那麼作爲@TokenMacGuy說,你可以簡單地使用d['close'] > d['MA']到各自的元組進行比較。