此外,列表理解似乎不工作:
>>> parsed_results.keys() dict_keys(['Sounder V Depth, F', 'Vessel Latitude, Degrees-Minutes']) >>> things2plot = [key.split(', ') for key in parsed_results.keys()] >>> things2plot ['Sounder V Depth', 'F'] >>> for key in parsed_results.keys(): ... print(key.split(', ')) ... ['Sounder V Depth', 'F'] ['Vessel Latitude', 'Degrees-Minutes']
就我个人而言,我认为这是对鸭子打字的“违反”,因此是一个“错误”。 但是我认为现在还有其他人注意到了这一点,所以如果没有确定的话,就必须被认为是一个“特征”,但是我不能为了我的生活而明白为什么。
对Chris的补充说明:
好了,克里斯,那么至less应该更好的误用检测和通知(“你似乎不想要一个迭代器在这里,你是否期待一个列表?试试列表(dict.keys())…”)会更像我已经知道并喜爱的有用的Python。 :/(我要求你提供数据来支持你声明迭代器的function是dict.keys的“更常见”的用例,但是你可能会提供它。);-)到目前为止因为我的列表理解的例子不工作(对我来说),它是从PyCharmdebugging器命令行剪切和粘贴的,所以也许这个问题是一个错误。 (我今天已经遇到过另外一个“bug”了,所以根本不会让我感到吃惊。)谢谢!