急求!!!在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都是一样的都是同一个对象

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-11-30
这两者都可以。在python中,我们的定义和数据的存在方式是引用加对象如a=1,a即引用,1及对象。其赋值和参数传递过程中,传递的仅仅只是引用而已。而python的数据类型只是针对于对象而言的,引用是没有类型的。执行list的append也只是传递了引用,tuple中包含list时也只是记录了引用而已。不知道这种说法对不对,我也只是前段时间看了python 的内存管理外加自己测试的建言而已。追问

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

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

第2个回答  2014-11-30
都可以,列表,元组,字典的元素可以是任何类型追问

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

追答

元组是不可改变是指,创建了之后,不能增加、删除、修改元祖中的元素,作为比较,列表可以增加(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])没改变,但是列表的内容变了)

本回答被提问者采纳
相似回答