示例列表
{
'date': array(['06/08/2016', '06/09/2016', '06/10/2016']),
'close': array([ 923.13, 914.25, 909.42])
}
我试图让收盘日期为914.25即列表['date'] [2] 但我不知道如何让索引2接近。
谢谢。
答案 0 :(得分: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'
答案 1 :(得分:1)
你可以试试这个:
>>> 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)。
答案 2 :(得分:0)
示例来自哪里?我不认为你可以在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'