[英]How to find the index number of list that in dictionary?
示例列表
{
'date': array(['06/08/2016', '06/09/2016', '06/10/2016']),
'close': array([ 923.13, 914.25, 909.42])
}
我试图得到关闭的日期是914.25,这是列表['日期'] [2],但我不知道如何获得索引2关闭。
谢谢。
理想情况下,如果您经常进行此类查询,则应重新构建数据以更好地适应用例。 例如,有一个字典,其中键是金额,日期是值。 然后,您将按键快速O(1)
查找字典。
但是,在这种问题的状态下,您可以使用zip()
和next()
来解决它:
>>> d = {
... 'date': ['06/08/2016', '06/09/2016', '06/10/2016'],
... 'close': [ 923.13, 914.25, 909.42]
... }
>>> a = 914.25
>>> next(date for date, amount in zip(d['date'], d['close']) if amount == a)
'06/09/2016'
请注意,如果找不到金额,则next()
将因StopIteration
异常而失败。 您可以处理它,也可以事先提供默认值:
>>> a = 10.00
>>> next((date for date, amount in zip(d['date'], d['close']) if amount == a), 'Not Found')
'Not Found'
你可以试试这个:
>>> data = { 'date': ['06/08/2016', '06/09/2016', '06/10/2016'],'close': [ 923.13, 914.25, 909.42]}
>>> data['date'][data['close'].index(914.25)]
'06/09/2016'
感谢index()
,您可以获得所需值的索引(在本例中为914.25)。
示例来自哪里? 我不认为你可以在Python中拥有一个字符串array
。
假设Python数据结构是:
{
'date': ['06/08/2016', '06/09/2016', '06/10/2016'],
'close': [923.13, 914.25, 909.42]
}
并且close
的索引总是匹配date
的索引,然后:
In [1]: d = {
...: 'date': ['06/08/2016', '06/09/2016', '06/10/2016'],
...: 'close': [923.13, 914.25, 909.42]
...: }
你找到了914.25的索引:
In [2]: d['close'].index(914.25)
Out[2]: 1
您找到相应的日期:
In [3]: d['date'][1]
Out[4]: '06/09/2016'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.