社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
私信  •  关注

Chris Barker

Chris Barker 最近创建的主题
Chris Barker 最近回复了
10 年前
回复了 Chris Barker 创建的主题 » 迭代python字典[重复]

“鸭子打字”的定义有点离谱-- dict.keys() 返回一个iterable对象,而不是一个类似列表的对象。它可以在任何一个iTable可以工作的地方工作——而不是列表可以工作的地方。列表也可以是iterable,但iterable不是列表(或序列…)

在实际的用例中,使用dict中的键最常见的事情是迭代它们,所以这是有意义的。如果你确实需要它们作为一个列表,你可以打电话给 list() .

非常类似于 zip() --在绝大多数情况下,它是迭代的——为什么创建一个完整的新的元组列表来迭代它,然后再次丢弃它?

这是Python使用更多迭代器(和生成器)而不是各地列表副本的大趋势的一部分。

听写键() 不过,应该理解——仔细检查是否有打字错误或其他什么…它对我来说很好:

>>> d = dict(zip(['Sounder V Depth, F', 'Vessel Latitude, Degrees-Minutes'], [None, None]))
>>> [key.split(", ") for key in d.keys()]
[['Sounder V Depth', 'F'], ['Vessel Latitude', 'Degrees-Minutes']]