当前位置: 首页 > 面试题库 >

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

扶冠宇
2023-03-14
问题内容
>>> x=[1,2]
>>> x[1]
2
>>> x=(1,2)
>>> x[1]
2

它们都有效吗?是出于某些原因而首选?


问题答案:

方括号是列表,括号是元组。

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

>>> 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)

但是, 这并不意味着元组是可变的 。在上面的示例中,通过将两个元组加在一起作为参数来构造 新的
元组。原始元组未修改。为了证明这一点,请考虑以下几点:

>>> 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]


 类似资料:
  • 这里我理解哈希(#)符号将定义为本地模板变量,但是前面的星号是什么意思呢?还有,有必要吗? 下面是使用括号的示例: 我有点理解周围的括号将它绑定到HTML属性/Angular指令。这是否意味着它们是Angular计算表达式的指针?就像是Angular 1中的的等价物? 我猜真正的问题是,这些符号在Angular 2中有特殊的含义吗,知道何时使用每一个的最简单的方法是什么?谢谢!!

  • 问题内容: 我对以下代码行的语法感到困惑: 数据框对象由2列(“大脑”和“身体”)组成 当我打印x_values时,我得到这样的东西: 就dataframe对象的属性和方法而言,我知道pandas文档,但双括号语法使我感到困惑。 问题答案: 考虑一下: 来源DF: 选择一列-生成Pandas.Series: 选择DataFrame的子集-结果为DataFrame: 结论: 第二种方法允许我们从Da

  • 问题内容: 我来自Javascript背景(可以同时通过属性和符号访问属性),所以请原谅我,但是Python中两者之间的区别到底是什么? 从我的实验它seeems认为应始终使用,既得到的索引或并从在某个键中获得的价值。这是否正确?如果不正确,什么时候在Python中使用? 问题答案: 点运算符用于访问任何对象的属性。例如,复数 具有(其中包括)两个属性和: 除此以外,它还有一个方法,它也是一个属性

  • 我正在尝试找到一种方法,使VSCode在我点击括号内的回车键到括号的开头时自动缩进项目,如下所示(类似于这篇文章)。这在Jupyter中运行良好,但我在VSCode中找不到相同的解决方案,也无法在线找到解决方案。有人知道如何通过VSCode中的预设来实现这一点吗?提前致谢。 当前: 渴望的: 编辑 @Shradha 虽然听起来与我正在寻找的内容相似,但您的建议并没有以我正在寻找的方式解决代码问题。

  • 我正在阅读关于if的bash示例,但有些示例是用单方括号编写的: 其他带双方括号: 有什么区别?

  • 本文向大家介绍浅析python 中大括号中括号小括号的区分,包括了浅析python 中大括号中括号小括号的区分的使用技巧和注意事项,需要的朋友参考一下 python语言最常见的括号有三种,分别是:小括号( )、中括号[ ]和大括号也叫做花括号{ }。其作用也各不相同,分别用来代表不同的python基本内置数据类型。 1.python中的小括号( ):代表tuple元组数据类型,元组是一种不可变序列