代码之家  ›  专栏  ›  技术社区  ›  digitaldreamer

有没有一种简单的方法可以在python中将两个字典“append()”放在一起?

  •  2
  • digitaldreamer  · 技术社区  · 16 年前

    如果我有两个字典,我想在python中合并,也就是说。

    a = {'1': 1, '2': 2}
    b = {'3': 3, '4': 4}
    

    如果我对它们运行更新,它会重新排序列表:

    a.update(b)
    {'1': 1, '3': 3, '2': 2, '4': 4}
    

    当我真正想要的是在“A”的末尾加上“B”时:

    {'1': 1, '2': 2, '3': 3, '4': 4}
    

    是否有一种简单的方法可以将“B”连接到“A”的末尾,而无需像这样手动组合它们:

    for key in b:
        a[key]=b[key]
    

    像+=或append()之类的东西是理想的,但当然这两种方法都不适用于字典。

    5 回复  |  直到 11 年前
        1
  •  11
  •   Andrew Aylett    16 年前

    python字典没有顺序——如果在实践中项目以特定的顺序出现,那纯粹是特定实现的副作用,不应该依赖它。

        2
  •  2
  •   interjay    16 年前

    字典是无序的:它们没有开始或结束。是否使用 update 或者 for 循环,最终结果仍然是无序的。

    如果需要排序,请使用元组列表。python 3.1有一个 OrderedDict 也将在python 2.7中使用的类型。

        3
  •  2
  •   WhirlWind    16 年前

    字典未排序。如果您需要订购,您可以尝试使用类似列表的方法。

        4
  •  1
  •   Daniel DiPaolo    16 年前

    标准库里有一本有序的词典 as of Python 3.1.1 但是它的用例是有限的。通常,如果您使用的是字典,那么您只对键到值的映射感兴趣,而不是顺序。如果您不使用python 3.x的话,也有很多订购字典的方法,但是您应该首先问问自己订购是否重要,如果重要,您是否使用了正确的数据结构。

        5
  •  0
  •   Vetsin    16 年前

    我认为你误解了词典的用法。您不能访问它们的顺序或位置。您可以从键访问它们,在您的情况下,这也恰好是数字。它们是哈希表,应该像这样工作。你做得对。