2010-12-10 89 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']到各自的元组进行比较。