社区所有版块导航
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
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  pycharm

Python将排序列表转换为字典,Google Colab和Pycharm中的差异

develkneifel • 2 年前 • 725 次点击  
chars = dict(sorted(crops.items(),key=lambda kv: kv[1].size, reverse=True)[:4])

我在GoogleColab和Pycharms中运行上面的代码行,这两种代码都给了我一个不同的字典。在Colab中,它从下面的列表中提供了我想要的(注意:列表中有很多行)。它保留列表的顺序 { (6, crop1), (7,crop2) , (2, crop3) , (3, crop4) } .

但是,在pycharms中,输出是 { (2, crop3) , (3, crop4), (6, crop1), (7,crop2)} ,在那里它仍然获得了最大的四种作物 dict() 它似乎按照计数变量对字典中的列表重新排序。

字符列表:

[(6, array([[78, 76, 77, 78, 73, 81, 80, 81, 79, 72, 77, 78, 71, 73, 78, 81,
        82, 79, 76, 74, 75, 85, 86, 78, 76, 84, 85, 80, 78, 73, 76],
      ..., (7, array([[89, 90, 87, 83, 82, 83, 77, 76, 75, 74, 71, 73, 74, 77, 77, 80,
        77, 75..., (3, array([[ 79,  77,  81,  74,  80,  85,  83,  79,  74,  77,  74,  76,  78,
        ...]

我不确定是什么原因导致了这一点,肯定需要一些帮助。也许PyCharms也有一个问题——代码在Gazebo模拟中实时运行,所以这可能会改变它的运行方式 dict() 你在投我的名单吗?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/128717
 
725 次点击  
文章 [ 1 ]  |  最新文章 2 年前
Patrick Artner
Reply   •   1 楼
Patrick Artner    2 年前

字典是一个继承的无序数据结构-周期。

python(*)中的词典是按插入排序的——放入其中的第一项也是第一个打印的项。

(*)Python3.7及以上版本的保留-3.7以下的dict可以随机排序,或者(实现细节)也可以插入排序。

How do I detect the Python version at runtime?

如果您使用的是python的早期版本>=3.1您可以使用 collections.ordereddict