【问题标题】:How to return keys in original order in a dict如何在字典中按原始顺序返回键
【发布时间】:2011-11-25 14:45:27
【问题描述】:

我正在读取一个文件并将信息存储在一个字典中,因为它从上到下读取。与原始文件相比,我不想以错误的顺序打印出来。

还有一个很小的问题:我记得在某处看到过 if 和 else 语句的简短形式:

if a == 'a':
    a = 'b' ? a = 'c'  

你知道确切的形式吗?

谢谢。

【问题讨论】:

  • 欢迎堆栈溢出!这些都是很好的问题,也很合适;但因为你有两个问题,你应该在两个不同的帖子中提问。

标签: python dictionary


【解决方案1】:

【讨论】:

  • 我的python是2.4,这就是它没有OrderedDict模块的原因吗?我有收藏但没有 OrderedDict
  • @BPm:您是否读到了“另请参阅Equivalent OrderedDict recipe 在 Python 2.4 或更高版本上运行。”的粗体字?
【解决方案2】:

您可以使用 OrderedDict,也可以将数据存储在列表中并使用 dict 对其进行索引,或者将其存储在 dict 中并随时将键保存在列表中。

【讨论】:

    【解决方案3】:

    我不知道dict,但您正在寻找的短格式是Does Python have a ternary conditional operator?

    几乎每种语言都有一个三元运算符,您可以在wikipedia 上找到一些示例。但是,Python 中的语法与链接的 SO 答案中解释的其他语法不同。

    【讨论】:

      【解决方案4】:

      Python 字典是无序的(请参阅here)。

      关于您的第二个问题,请参阅previous answer

      【讨论】:

        【解决方案5】:

        第二个答案先:a = 'b' if a == 'a' else 'c'(称为三元表达式)

        第一个答案第二个:使用OrderedDict,从 2.7 开始可用。

        如果您无法使用,您可以:

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2022-01-23
          • 2013-05-12
          • 2023-02-09
          • 1970-01-01
          • 2013-03-07
          • 1970-01-01
          • 2014-04-11
          • 1970-01-01
          相关资源
          最近更新 更多