急求!!!在python语言中,列表中能否包含元组,为啥?元组中能否包含列表,为啥? 谢谢大神

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了急求!!!在python语言中,列表中能否包含元组,为啥?元组中能否包含列表,为啥? 谢谢大神相关的知识,希望对你有一定的参考价值。

急求!!!在python语言中,列表中能否包含元组,为什么?元组中能否包含列表,为什么? 谢谢大神了!

都可以,我想列表内加元组,你应该觉得没有问题,下面是元组内放列表,你看下面的代码:

a = (1,2,3,[4,5,6,7],8)
print(id(a), a, id(a[3]), a[3])
a[3].append(0)
print(id(a), a, id(a[3]), a[3])

结果:

2467981714800 (1, 2, 3, [4, 5, 6, 7], 8)     2467981648456 [4, 5, 6, 7]

2467981714800 (1, 2, 3, [4, 5, 6, 7, 0], 8) 2467981648456 [4, 5, 6, 7, 0]

它们的id都是一样的都是同一个对象

参考技术A 这两者都可以。在python中,我们的定义和数据的存在方式是引用加对象如a=1,a即引用,1及对象。其赋值和参数传递过程中,传递的仅仅只是引用而已。而python的数据类型只是针对于对象而言的,引用是没有类型的。执行list的append也只是传递了引用,tuple中包含list时也只是记录了引用而已。不知道这种说法对不对,我也只是前段时间看了python 的内存管理外加自己测试的建言而已。追问

我也是才开始自学,谢谢~

要编写一个函数的话,开头格式要怎么写呢?是def ……吗?

参考技术B 都可以,列表,元组,字典的元素可以是任何类型追问

那怎么样理解元组是不可改变的?谢谢

追答

元组是不可改变是指,创建了之后,不能增加、删除、修改元祖中的元素,作为比较,列表可以增加(append),删除(remove),修改(list[0] = value),元祖则不能进行这些操作,需要注意的是,元祖不能修改,不代表元祖中的元素不能被修改,比如元祖t = ([1,2,3],4), t[0]是一个列表,可以修改,如t[0].append(5),之后t变成([1,2,3,5],4),过程中,t[0]指向同一个列表(id(t[0])没改变,但是列表的内容变了)

本回答被提问者采纳

Python中的元组(Tuple)

参考技术A 在Python中,元组(Tuple)与列表(List)类似,也是一个有序的序列,但元组是一个不可变对象,其一旦初始化后便无法进行修改。

一般在创建元组时,分为创建空元组和非空元组,其创建方式如下:

从上面可以看到,我们只需要把元组的所有元素放在 小括号 () 里面,每个元素之间通过 逗号 , 间隔起来即可,当然和列表一样,元组中同样允许存放不同数据类型的元素。

元组中使用的 () 是常见的数学运算符,如果参考列表的创建,如下:

从上面可以看到,我们创建出来的压根就不是元组类型。那么我们想创建一个只包含一个元素的元组时,需要怎么创建呢?

很简单,只需要在元素后加上一个 逗号 , ,这样创建出来就是一个元组。

当我们需要访问元组中的元素,可以类似列表一样通过索引取值或切片取值。

如果访问的索引不存在,那么会报错: IndexError: tuple index out of range

在元组中,可以像列表一样使用切片,语法为: 元组[start:end:step] ,通过切片可以获取到元组中指定范围的元素,返回结果是一个新元组。在这里,需要注意切片的规则是左闭右开,也就是说包含头部 start,但不包含尾部 end ,而 step 则表示切片的步长,需要每间隔 step 个元素取一次。

在上面我们提到了元组是不可变的,这就意味着我们创建一个元组之后,不能再去改变其值了,比如下面这样就会出现报错:

假设元组中存在元素是一个可变对象,如果我们不改变元组,但改变了可变对象的值,又会得到怎么的结果呢?请看下面实例:

从上面可以看到,元组中的第 2 个元素似乎发生了变化,这岂不是和上面说的元组不可变自相矛盾了吗?

其实,我们说的元组不可变,指的是元组中各元素的指向永远保持不变。在上面操作中,元组中第 2 个元素指向的一直是 列表nums ,我们改变的其实不是元组的元素,而只是改变了 列表nums 中的元素。

元组是不可变的,因此我们就不能删除元组中的元素,但是,我们可以通过 del 语句删除整个元组。

通过关键字 in ,可检查当前元组中是否包含指定元素,返回结果为布尔值 True 或 False。

通过关键字 in ,还可以用于遍历当前元组。

以上是关于急求!!!在python语言中,列表中能否包含元组,为啥?元组中能否包含列表,为啥? 谢谢大神的主要内容,如果未能解决你的问题,请参考以下文章

Python中的元组(Tuple)

python之元组,列表和字典的区别

python的元组和列表的区别

python列表和元组的区别

Python 语言基础之列表,元组

二python基础之列表元组