元组比较

时间:2010-12-10 02:24:32

标签: python tuples

我是这样定义的字典:

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

这些元组中的每一个都包含一个值列表(每个元组的值的数量相同),如果“close”优于“MA”,我如何通过特定值的每个值进行迭代来比较?

2 个答案:

答案 0 :(得分:1)

我错过了什么? d['close'] > d['MA']

编辑: Re,您的评论

  

[...]我想要返回的是“关闭”的一个元素是多少次>到MA的匹配元素。 (相同的元组索引)

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

答案 1 :(得分:1)

来自Python docs

  
    

使用相应元素的比较,按字典顺序比较元组和列表。这意味着要比较相等,每个元素必须比较相等,并且两个序列必须是相同的类型并具有相同的长度。

         

如果不相等,则序列的排序与其第一个不同的元素相同。例如,cmp([1,2,x],[1,2,y])返回与cmp(x,y)相同的值。如果相应的元素不存在,则首先排序较短的序列(例如,[1,2]< [1,2,3])。

  

正如@TokenMacGuy所说,你可以简单地使用d['close'] > d['MA']来比较各自的元组。