WordPress页面加分类文章,seo的优化步骤,营销文案,用什么软件建网站最方便python里面的tuple与list对比
tuple 另一种有序列表叫元组#xff1a;tuple。tuple和list非常类似#xff0c;但是tuple一旦初始化就不能修改#xff0c;比如同样是列出同学的名字#xff1a; classmates (Michael, Bob, Tracy)现在#xff0c;classmates…python里面的tuple与list对比
tuple 另一种有序列表叫元组tuple。tuple和list非常类似但是tuple一旦初始化就不能修改比如同样是列出同学的名字 classmates (Michael, Bob, Tracy)现在classmates这个tuple不能变了它也没有append()insert()这样的方法。其他获取元素的方法和list是一样的你可以正常地使用classmates[0]classmates[-1]但不能赋值成另外的元素。 不可变的tuple有什么意义因为tuple不可变所以代码更安全。如果可能能用tuple代替list就尽量用tuple。 tuple的陷阱当你定义一个tuple时在定义的时候tuple的元素就必须被确定下来比如 t (1, 2)t
(1, 2)如果要定义一个空的tuple可以写成() t ()t
()但是要定义一个只有1个元素的tuple如果你这么定义 t (1)t
1定义的不是tuple是1这个数这是因为括号()既可以表示tuple又可以表示数学公式中的小括号这就产生了歧义因此Python规定这种情况下按小括号进行计算计算结果自然是1。 所以只有1个元素的tuple定义时必须加一个逗号,来消除歧义 t (1,)t
(1,)Python在显示只有1个元素的tuple时也会加一个逗号,以免你误解成数学计算意义上的括号。 最后来看一个“可变的”tuple t (a, b, [A, B])t[2][0] Xt[2][1] Yt
(a, b, [X, Y])这个tuple定义的时候有3个元素分别是ab和一个list。不是说tuple一旦定义后就不可变了吗怎么后来又变了 别急我们先看看定义的时候tuple包含的3个元素 当我们把list的元素A和B修改为X和Y后tuple变为 表面上看tuple的元素确实变了但其实变的不是tuple的元素而是list的元素。tuple一开始指向的list并没有改成别的list所以tuple所谓的“不变”是说tuple的每个元素指向永远不变。即指向a就不能改成指向b指向一个list就不能改成指向其他对象但指向的这个list本身是可变的 理解了“指向不变”后要创建一个内容也不变的tuple怎么做那就必须保证tuple的每一个元素本身也不能变。
最后 Tuple 与 list 的相同之处 定义 tuple 与定义 list 的方式相同, 除了整个元素集是用小括号包围的而不是方括号。 Tuple 的元素与 list 一样按定义的次序进行排序。 Tuples 的索引与 list 一样从 0 开始, 所以一个非空 tuple 的第一个元素总是 t[0]。 负数索引与 list 一样从 tuple 的尾部开始计数。 与 list 一样分片 (slice) 也可以使用。注意当分割一个 list 时, 会得到一个新的 list 当分割一个 tuple 时, 会得到一个新的 tuple。 Tuple 不存在的方法 您不能向 tuple 增加元素。Tuple 没有 append 或 extend 方法。 您不能从 tuple 删除元素。Tuple 没有 remove 或 pop 方法。 然而, 您可以使用 in 来查看一个元素是否存在于 tuple 中。 用 Tuple 的好处 Tuple 比 list 操作速度快。如果您定义了一个值的常量集并且唯一要用它做的是不断地遍历它请使用 tuple 代替 list。 如果对不需要修改的数据进行 “写保护”可以使代码更安全。使用 tuple 而不是 list 如同拥有一个隐含的 assert 语句说明这一数据是常量。如果必须要改变这些值则需要执行 tuple 到 list 的转换。 Tuple 与 list 的转换 Tuple 可以转换成 list反之亦然。内置的 tuple 函数接收一个 list并返回一个有着相同元素的 tuple。而 list 函数接收一个 tuple 返回一个 list。从效果上看tuple 冻结一个 list而 list 解冻一个 tuple。 Tuple 的其他应用 一次赋多值 v (a, b, e) (x, y, z) v 解释v 是一个三元素的 tuple, 并且 (x, y, z) 是一个三变量的 tuple。将一个 tuple 赋值给另一个 tuple, 会按顺序将 v 的每个值赋值给每个变量。