Python 中方括号和括号括起来的列表有什么区别?

2024-04-03

>>> x=[1,2]
>>> x[1]
2
>>> x=(1,2)
>>> x[1]
2

它们都有效吗?是否因某种原因而受到青睐?


方括号是lists http://docs.python.org/tutorial/datastructures.html#more-on-lists而括号是tuples https://docs.python.org/tutorial/datastructures.html#tuples-and-sequences.

列表是可变的,这意味着您可以更改其内容:

>>> x = [1,2]
>>> x.append(3)
>>> x
[1, 2, 3]

而元组则不是:

>>> x = (1,2)
>>> x
(1, 2)
>>> x.append(3)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'tuple' object has no attribute 'append'

另一个主要区别是元组是可散列的,这意味着您可以将它用作字典的键等。例如:

>>> x = (1,2)
>>> y = [1,2]
>>> z = {}
>>> z[x] = 3
>>> z
{(1, 2): 3}
>>> z[y] = 4
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'list'

请注意,正如许多人指出的那样,您可以将元组添加在一起。例如:

>>> x = (1,2)
>>> x += (3,)
>>> x
(1, 2, 3)

然而,这并不意味着元组是可变的。在上面的例子中,一个new元组是通过将两个元组作为参数相加来构造的。原始元组没有被修改。为了证明这一点,请考虑以下事项:

>>> x = (1,2)
>>> y = x
>>> x += (3,)
>>> x
(1, 2, 3)
>>> y
(1, 2)

然而,如果您要使用列表构建相同的示例,y还将更新:

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

Python 中方括号和括号括起来的列表有什么区别? 的相关文章

随机推荐

  • np.argsort 和 pd.nsmallest 给出不同的结果

    示例数据和代码如下 import pandas as pd import numpy as np np random seed 2021 dates pd date range 20130226 periods 90 df pd DataF
  • 由于 Windows 更新,Azure 云服务应用程序(Web 角色)偶尔会停机约 10 分钟?我该如何安排它们?

    它似乎每隔几个月左右就会发生一次 虽然它通常会在大约 10 分钟内自动恢复 但我仍然想了解如何更改 Windows 更新计划 因为它经常在工作时间发生 我们在各种 Azure 订阅中有多个 Web 应用程序 它们都以这种方式运行 一旦我们收
  • 并排 div

    如何并排放置两个 div 并在它们之间使用分离器 那就是我的意思 我假设 html 布局看起来像这样 div div div div div div div div or div div div div div div div div ht
  • 通过 HTTPS 以 JSON 格式发送密码是否安全?

    如果我通过 HTTPS 发送 JSON 格式的密码来执行身份验证 安全吗 有更好的方法吗 一般来说 将用户名和密码发送到服务器以执行身份验证的最佳方法是什么 一般来说 是的 这对于被动网络窃听者是安全的 这是人们在这种架构中担心的主要威胁
  • 预加载器继续加载并且在加载内容时不会消失

    好的 首先 这是我的代码 var loader document getElementById loader window addEventListener loader function loader style display none
  • 是否有与 C++ std::partial_sort 等效的 C# ?

    我正在尝试为可通过许多标准排序的数据集实现分页算法 不幸的是 虽然其中一些标准可以在数据库级别实现 但有些必须在应用程序级别完成 我们必须与另一个数据源集成 我们有分页 实际上是无限滚动 要求 并且正在寻找一种方法来最大程度地减少每次分页调
  • ASP.NET-Identity:如何限制用户名长度?

    我怎样才能限制长度UserName表中的字段AspNetUsers 这都不是 public class ApplicationUser IdentityUser Required MaxLength 15 public string Use
  • C# 7 基于元组的变量交换线程安全吗?

    在 C 7 的元组之前 交换两个变量的标准方法如下 var foo 5 var bar 10 var temp foo foo bar bar temp 但现在我们可以使用 foo bar bar foo 它在一条线上 而且更漂亮 但它是线
  • 绘图错误“您的浏览器不支持 WebGL”

    我正在尝试使用创建一些 3D 绘图plotly包裹 我使用的代码是他们的教程示例 library plotly volcano is a numeric matrix that ships with R fig lt plot ly z v
  • 使用 RC.EXE 或 BRCC32.EXE 构建 *.rc 文件时包含文件的行为有所不同

    我希望在我的 Delphi 项目的 RC 文件中使用点 作为资源条目 但是 Delphi 的 BRCC32 exe 不允许在资源命名中使用点 从Delphi 2010开始 我们可以在中指定 要使用的资源编译器 Project Option
  • 非常简单的 Firestore 事务失败

    我正在为一项超级简单的交易而苦苦挣扎 它总是失败并显示消息 事务所有重试均失败 但除此之外没有任何错误消息logcat 当我调试它时 我发现它被重试了几次 我真的不知道为什么 因为其他交易运行没有问题 我只想将一个文档从一个集合克隆到另一个
  • 使用 UIImagePickerController 时出现内存警告

    当我在 iPhone 上使用相机时收到内存警告 我也在使用 ARC 当您拍照并按相机视图控制器上的 使用照片 按钮时 我会收到内存警告 目的是一旦按下 使用照片 按钮 它就会更改 ImageView 的内容 我认为内存问题可能是由于捕获的图
  • 如何在 Sublime Text 中格式化 django 模板

    如何在 Sublime Text 中格式化 django 模板 我的模板包括 HTML django 模板语言与 variable and stuff javascript 有没有办法获得 PyCharm 提供的相同类型的格式 这个包应该可
  • 在 Blazor 中增加文本区域

    我需要一个随着行数增加而增长的文本区域 一旦行被删除 TextArea 就会再次缩小 在最好的情况下具有最大高度 它如何与 Javascript 一起工作我已经可以在这里阅读 根据内容长度调整文本区域大小 https stackoverfl
  • Spring中Bean创建异常

    我正在尝试自动装配在另一个项目中声明的类 但是在我收到运行时异常而不是编译时异常 如果我删除自动装配并使用新实例创建一个对象 它会完美运行 我收到以下错误 ErrorSEVERE StandardWrapper Throwable org
  • 如何通过Java程序调节扬声器音量?

    我运行的是 Win Vista 在窗口右下角的时钟旁边有一个扬声器图标 我可以单击它并调整音量 我想知道我的 Java 程序中是否有办法自动执行此操作 例如 当我的Java程序启动时 它将音量调至80 当程序退出时 它将音量调回原来的水平
  • Bouncy castle 中使用 SHA256 的 ECDSA 抛出无此类算法异常

    我正在尝试使用生成签名ECDSA with SHA256 in Bouncy Castle如下 我在开头添加了提供者 我已经构建了 ECPrivatekey Signature s oSignature Signature getInsta
  • 仅当存在查询字符串时才适用于图像文件请求的 RewriteRule

    由于我有限的正则表达式和 mod rewrite 能力 我正在尝试重写某些图像请求 以便我可以使用 php 脚本更改输出 这是我所拥有的 RewriteRule public uploads A Za z0 9 JPEG JPG GIF P
  • 检查是否使用 JQuery 设置了 URL 变量

    我想知道是否有一个 jQuery 函数可以检查 URL 中的变量是否已设置 类似于 PHP 中的 isset 函数 Thanks jQuery 没有获取 URL 参数的本机函数 但你可以编写自己的插件 extend getUrlVars f
  • Python 中方括号和括号括起来的列表有什么区别?

    gt gt gt x 1 2 gt gt gt x 1 2 gt gt gt x 1 2 gt gt gt x 1 2 它们都有效吗 是否因某种原因而受到青睐 方括号是lists http docs python org tutorial