我创建了以下字典
exDict = {True: 0, False: 1, 1: 'a', 2: 'b'}
Run Code Online (Sandbox Code Playgroud)
当我打印时exDict.keys(),它给了我一台发电机.好吧,所以我强迫它列入清单,它给了我
[False, True, 2]
Run Code Online (Sandbox Code Playgroud)
为什么不在那里?当我打印exDict.items()它给我
[(False, 1), (True, 'a'), (2, 'b')]
Run Code Online (Sandbox Code Playgroud)
有人猜测这里发生了什么?我很难过.
我正在开发一个用于微量滴定板分析的课程.样本在单独的文件中描述,条目用于有序字典.其中一个关键是pH,通常以浮子形式给出.例如6.8
我可以将其导入为十进制,Decimal('6.8')以避免浮动为dict键.另一种解决方案是用例如像6p8的p替换点或在我的样本描述中写入6p8,从而在开始时消除问题.但这会引起麻烦,因为我无法在我的数字中绘制6p8的pH值.
你会如何解决这个问题?
任何人都可以向我解释以下行为吗?
>>> import numpy as np
>>> {np.nan: 5}[np.nan]
5
>>> {float64(np.nan): 5}[float64(np.nan)]
KeyError: nan
Run Code Online (Sandbox Code Playgroud)
为什么它在第一种情况下起作用,而在第二种情况下不起作用?另外,我发现以下的DOES有效:
>>> a ={a: 5}[a]
float64(np.nan)
Run Code Online (Sandbox Code Playgroud)