Python 有一个不可变的列表吗?

2022-01-19 00:00:00 python list tuples immutability

问题描述

python 有不可变的列表吗?

Does python have immutable lists?

假设我希望有一个有序的元素集合的功能,但我想保证不会改变,如何实现?列表是有序的,但它们可以改变.

Suppose I wish to have the functionality of an ordered collection of elements, but which I want to guarantee will not change, how can this be implemented? Lists are ordered but they can be mutated.


解决方案

是的.它被称为 tuple.

所以,[1,2] 是一个 list 并且可以被变异,而不是 (1,2) 是一个tuple 不能.

So, instead of [1,2] which is a list and which can be mutated, (1,2) is a tuple and cannot.

更多信息:

单元素的tuple不能通过写(1)来实例化,而是需要写(1,).这是因为解释器对括号还有各种其他用途.

A one-element tuple cannot be instantiated by writing (1), instead, you need to write (1,). This is because the interpreter has various other uses for parentheses.

您也可以完全取消括号:1,2(1,2)

You can also do away with parentheses altogether: 1,2 is the same as (1,2)

请注意,元组完全不是不可变列表.点击这里阅读更多关于列表和元组的区别

Note that a tuple is not exactly an immutable list. Click here to read more about the differences between lists and tuples

相关文章