为什么使用 setdefault() 创建的这个 Python 字典是乱序的?

2023-12-30

我刚刚开始使用 Python(VBA 背景)。为什么这本字典的创建顺序是乱的?不应该是a:1、b:2...等等吗?

class Card:
def county(self):
    c = 0
    l = 0
    groupL = {}  # groupL for Loop
    for n in range(0,13):
        c += 1
        l = chr(n+97)
        groupL.setdefault(l,c)
    return groupL

pick_card = Card()
group = pick_card.county()
print group

这是输出:

{'a': 1, 'c': 3, 'b': 2, 'e': 5, 'd': 4, 'g': 7, 'f': 6, 'i': 9, 'h': 8, 'k': 11, 'j': 10, 'm': 13, 'l': 12}

或者,它只是打印得乱序?


python 中的字典没有顺序。换句话说,当您迭代字典时,“产生”键/项目的顺序并不是您将它们放入字典中的顺序。 (在不同版本的 python 上尝试您的代码,您可能会得到不同顺序的输出)。如果你想要一本有序的字典,你需要一个collections.OrderedDict直到 python 2.7 才引入。您可以在以下位置找到等效的食谱ActiveState如果您使用的是旧版本的 python。然而,通常只需对项目进行排序就足够了(例如sorted(mydict.items()).

EDIT根据要求,一个 OrderedDict 示例:

from collections import OrderedDict
groupL = OrderedDict()  # groupL for Loop
c = 0
for n in range(0,13):
    c += 1
    l = chr(n+97)
    groupL.setdefault(l,c)

print (groupL)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么使用 setdefault() 创建的这个 Python 字典是乱序的? 的相关文章

随机推荐

  • 为什么更新变量的哈希集会更新该变量?

    我可以将哈希集更新为另一个变量 如下所示 d a b c a b qwerty d gt b gt qwerty What is this magic d b blah a gt b gt blah And this magic 为什么使用
  • perf stat 输出的解释

    我开发了一个代码 可以输入大的二维图像 高达 64MPixels 并且 对每一行应用过滤器 转置图像 使用阻塞以避免大量缓存未命中 对图像的列 当前行 应用过滤器 将过滤后的图像转回以进行其他计算 虽然它没有改变任何东西 但为了我的问题的完
  • 带有 PowerShell 的 Rapidshare API

    FreeUploadServer Invoke RestMethod Uri http api rapidshare com cgi bin rsapi cgi sub nextuploadserver Invoke RestMethod
  • 如何将 R 数据帧写入 Google Cloud Storage 存储桶文件夹

    我想将 R 数据帧写入 Google Cloud Storage 存储桶 我在用googleCloudStorageRR 中的库 这是我的代码 START options googleAuthR scopes selected https
  • Cassandra的索引结构是怎样的

    Cassandra使用LSM树进行存储 那么cassandra的索引结构到底是怎样的呢 例如 Mongo 和 Couchbase 都使用 BTree 这取决于您实际使用的 Cassandra 版本 对于 3 4 之前的版本 索引被实现为隐藏
  • MYSQL 逗号分隔列表,可以添加和删除值吗?

    我有一个逗号分隔的列表 我将其存储在 mysql 表的 varchar 字段中 是否可以直接使用 sql 查询在列表中添加和删除值 或者我必须从表中取出数据 在 PHP 中操作并将其替换回 mysql 中 mysql中的InnoDB和MyI
  • 将 python-igraph 图转换为 networkx

    最近我一直在使用 python igraph 包 我的所有代码都基于我使用 igraph 创建的图表 现在 我需要为我的图计算一些度量 这些度量显然是在 networkx 中实现的 而不是在 igraph 中实现的 例如 katz cent
  • 为什么android HttpURLConnection缓存输入流结果?

    我正在尝试获取 xml 文件 但它似乎已被缓存 这是我的代码 URL url new URL http delibere asl3 liguria it SVILUPPO elenco xml asp rand new Random nex
  • 创建“Copyable”类型接口而不是使用“Cloneable”是否有意义?

    我有一些代码需要发送对象的副本 此要求是因为调用的服务 运行时库 会修改发送的对象 该对象还需要公开设置器 以防doThing下面的方法需要设置任何字段ImportantObj班级 此实现正在等待更改 但没有合理预期会在不久的将来发生更改
  • SQL - 使用 CASE 语句更新,我需要多次重复相同的 CASE 吗?

    我的 UPDATE 语句大致如下 UPDATE customer SET forenames ot forenames surname CASE WHEN ot safeplace IS NULL THEN test SAFEPLACE I
  • Spring Data JPA“无法找到 List [重复]

    这个问题在这里已经有答案了 很难弄清楚我是否遇到了错误或做了一些愚蠢的事情 Spring Boot v2 0 0 M7 spring data jpa spring data rest MySQL 以下 Query Query select
  • 如何退出 Google+ 帐户?

    在 Android 应用程序上注册 Google plus 后 我如何注销 以便可以使用另一个帐户登录 不知道是否GoogleAuthUtil invalidateToken是不是答案 Thanks 如果您正在使用Google 登录 htt
  • 给定一个 Java InputStream,我如何确定流中的当前偏移量?

    我想要一些通用的 可重复使用的东西getPosition 方法将告诉我从流的起点读取的字节数 理想情况下 我希望它能够与所有输入流一起使用 这样当我从不同的来源获取它们时 我就不必包装它们中的每一个 这样的野兽存在吗 如果没有 任何人都可以
  • Oracle sql 中的“show create table”等效项

    在 MySql 中 您可以使用以下命令查看表定义 列及其数据类型等 show create table table name oracle sql有类似的功能吗 如果您询问有关 SQL Plus 命令 show create table t
  • 使用 Bootstrap-Vue 时,如何防止单击嵌套 b-input 组件时关闭 b-dropdown?

    我很确定我只是不明白如何实现 Vue事件修饰符 https v2 vuejs org v2 guide events html Event Modifiers 根据该文档 我所要做的就是添加以下内容 a a 以下是我如何将示例解释为我的哈巴
  • Python 日志记录 - 根据名称确定级别号

    Python 日志记录级别可以使用以下方式注册logging addLevelName 有没有一种方法可以从级别名称获取Python日志编号 打电话后addLevelName 结果级别的处理方式与所有标准级别完全相同 gt gt gt im
  • 在多级逻辑回归中,SE 如何高于 1000? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 也许我的问题无法具体 但是当拟合 glme 模型 在 R 中使用 lme4 包 时 我得到其中一个参数 SE 1000 估计参数高达 16
  • 更改 UIPickerView 背景

    我想更改 UIPickerView 的边框颜色 我没有看到 UIPickerView 的色调属性 有什么办法可以做到这一点吗 或者解决方法 Thanks 您还可以屏蔽该组件 只需稍加修改 您就可以获取组件的大小并使用以下代码将其剪切出来 C
  • 使用遗传算法进行图像处理

    我想看看遗传算法在图像处理中的应用 我不知道如何为任何图像编写健身函数 假设我有一个灰度图像 它不是很清晰 现在如果我继续将生成的解决方案与该图片值匹配 那么我的解决方案会如何更好 例如更好的清晰度 增加的对比度 亮度等 我最喜欢的遗传算法
  • 为什么使用 setdefault() 创建的这个 Python 字典是乱序的?

    我刚刚开始使用 Python VBA 背景 为什么这本字典的创建顺序是乱的 不应该是a 1 b 2 等等吗 class Card def county self c 0 l 0 groupL groupL for Loop for n in