【问题标题】:What's the difference between () vs [] vs {}?() vs [] vs {} 有什么区别?
【发布时间】:2011-05-23 09:56:00
【问题描述】:

Python 中 () 与 [] 与 {} 的区别是什么?
是收藏吗?如何判断何时使用哪个?

【问题讨论】:

  • 你在读哪个教程?这通常涵盖得相当彻底。请确定您当前用于学习 Python 的资源。
  • 我读了几本,但我很健忘,目前我只是在做一些github.com/gregmalcolm/python_koans - 边做边学。
  • 做更多 :-) 从 python REPL(例如 trypython.org)评估 type([]) 将导致“”。编码愉快。

标签: python data-structures collections


【解决方案1】:

() - 元组

元组是不能更改(不可变)的项目序列。

[] - 列表

列表是可以更改(可变)的项目序列。

{} - 字典或集合

字典是键值对的列表,具有唯一键(可变)。从 Python 2.7/3.1 开始,{} 还可以表示一组唯一值(可变)。

【讨论】:

  • 注:从 2.7/3.1 开始,{} 可以是字典 ({"a":"1","b":"2"}) 或集合 ({"a","b","c"})。集合是唯一值的无序集合,可以更改(尽管其中的每个项目都不能)。
  • 一般来说:元组是异构的,而列表是同构的。当然,动态类型使区分/执行变得模糊。请参阅 Mark Byers 的答案中的链接。
【解决方案2】:

除了其他答案给出的元组、列表和字典之外,{} 还表示 python 2.7 和 python 3.1 中的集合文字。 (这是有道理的,因为 set 元素的作用类似于 dict 的键)。

【讨论】:

    【解决方案3】:
    () - tuple
    [] - list
    {} - dictionary
    

    所有 Python 教程都应涵盖这一点。 Here 是一个很好的起点。

    【讨论】:

      【解决方案4】:
      • () 是一个元组:值的不可变集合,通常(但不一定)具有不同的类型。
      • [] 是一个列表:值的可变集合,通常(但不一定)属于同一类型。
      • {} 是一个字典:为键值对使用字典。

      列表和元组的区别参见here。另见:

      【讨论】:

        猜你喜欢
        • 2012-05-21
        • 2022-08-17
        • 2014-07-01
        • 2021-07-16
        • 2013-03-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多