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

如果在Python中我将一个列表放在一个元组中,是否可以安全地更改该列表的内容?

蒋培
2023-03-14
问题内容

元组中的值只是对列表的引用,如果我更改列表中的值,那么一切仍然井井有条,对吗?我想确保,如果这样做,我不会开始遇到令人困惑的错误。


问题答案:

元组是不可变的,您不能更改其内容。

有清单

>>> x = [1,2,3]
>>> x[0] = 5
>>> x
[5, 2, 3]

与元组

>>> y = tuple([1,2,3])
>>> y
(1, 2, 3)
>>> y[0] = 5   # Not allowed!

Traceback (most recent call last):
  File "<pyshell#20>", line 1, in <module>
    y[0] = 5
TypeError: 'tuple' object does not support item assignment

但是如果我理解你的问题,说你有

>>> a = [1,2,3]
>>> b = [4,5,6]
>>> t = (a,b)
>>> t
([1, 2, 3], [4, 5, 6])

可以 将内部列表修改为

>>> t[0][0] = 5
>>> t
([5, 2, 3], [4, 5, 6])


 类似资料:
  • 问题内容: 例如,如果我有一个元组列表 如何解开元组并将其重新格式化为一个列表 我认为这也与功能有关,但是我真的不知道该怎么做。请赐教。 问题答案: b = [i for sub in a for i in sub] 这样就可以了。

  • 问题内容: 我需要增量填充列表或列表元组。看起来像这样: 为了使它不那么冗长,更优雅,我想我会预先分配一个空列表 预分配部分对我来说并不明显。当我这样做时,我会收到对同一列表的引用列表,因此以下内容的输出 是: 我可以使用循环(),但我想知道是否存在“无环”解决方案。 是获得我想要的东西的唯一方法 问题答案: 这将创建x个不同的列表,每个列表都有一个列表副本(该列表中的每个项目都是通过引用提供的,

  • 问题内容: 我正在尝试比较两个列表,如果第二个列表中有第一个列表中的任何值,则只打印一条消息。 在此示例中,我要对进行求值,因为两个列表中都包含5。这行不通,而且我不确定比较这两个列表的最简单方法。 问题答案: 您可以用很多方法解决。一个很容易理解的方法就是只使用一个循环。 一个更紧凑的方法是使用和: 更好的是,可以将其替换为: 您还可以使用集合:

  • 问题内容: [‘a’,’a’,’b’,’c’,’c’,’c’] 至 和 问题答案: x=[‘a’,’a’,’b’,’c’,’c’,’c’] >>> map(x.count,x) [2, 2, 1, 3, 3, 3] >>> dict(zip(x,map(x.count,x))) {‘a’: 2, ‘c’: 3, ‘b’: 1} >>>

  • 问题内容: 我有两个清单: 并想要获取一个长度为(A)的布尔列表,其中每个索引处的元素指示A中相同索引处的元素是否在列表B中的任何位置。返回值为: 编写一个函数很容易,但是想知道在Python中是否有一种范式来实现它。 在R中,对应项为 问题答案: 使用列表理解: 如果巨大,那么最好将其转换为第一个。如此,将集合的成员资格测试 与列表中的进行比较。

  • 问题内容: 我有一个包含字符串的元组列表,例如: 现在,我希望将一个元组中的每个字符串连接起来,以创建一个用空格分隔的字符串列表。我使用以下方法: 工作正常。 但是,我有超过一百万个元组的列表。所以我的问题是,这种方法是否足够有效,或者有更好的方法呢?谢谢。 问题答案: 对于大量数据,您应该考虑是否 需要 将所有数据都保留在列表中。如果您一次处理每个字符串,则可以创建一个生成器,该生成器将产生每个