不是说tuple不能直接改元素吗
tuple1 = '小甲鱼',['黑夜','迷途,小布丁']tuple1.insert(1,'怡景')
tuple1
通过上面的语句,我也没有将tuple1进行切片就直接修改了其中的元素了啊 tuple本身不能修改,但是如果它的元素是可变的,比如列表,那么这个元素本身可以被修改 hi 原因如下:
tuple1 是列表,因此可以使用insert方法。示例:
>>> tuple1
['黑夜', '迷途,小布丁']
>>> type(tuple1)
<class 'list'> BngThea 发表于 2018-5-18 16:39
tuple本身不能修改,但是如果它的元素是可变的,比如列表,那么这个元素本身可以被修改
但是这个列表也是tuple中的元素啊,和字符串一个等级啊 thexiosi 发表于 2018-5-18 16:41
hi 原因如下:
tuple1 是列表,因此可以使用insert方法。示例:
>>> tuple1
也就是说有个tuple1的标签一直在贴在list上,你不能直接修改tuple1只有读取作用,不具有写入作用,因此当我们原地改变list的时候,tuple1的值也就变了,对吧 zhdwinter 发表于 2018-5-18 17:11
但是这个列表也是tuple中的元素啊,和字符串一个等级啊
这个元素本身是可变的,所以可以修改,字符串等是不可变的 zhdwinter 发表于 2018-5-18 17:14
也就是说有个tuple1的标签一直在贴在list上,你不能直接修改tuple1只有读取作用,不具有写入作用, ...
对,tuple1 指向了一个列表,当你通过insert()方法改变这个列表后,tuple1跟着改变。tuple1 是 元祖tuple1中的一个元素,它的类型是列表,因此可以使用insert()方法
thexiosi 发表于 2018-5-18 17:25
对,tuple1 指向了一个列表,当你通过insert()方法改变这个列表后,tuple1跟着改变。tuple1 是...
因为我调用的list的函数都是没有返回值的,也就是list是在原地变化的,所以我以为只要是原地变化的量都可以反馈会tuple1[]中,因此我在tuple后面新增了一个数字1,我使用原地加法对其进行赋值,tuple1 += 1,
结果报错了提示不能修改。看来list是个特例 zhdwinter 发表于 2018-5-18 17:31
因为我调用的list的函数都是没有返回值的,也就是list是在原地变化的,所以我以为只要是原地变化的量都可 ...
嗯,主要是看元祖中的元素是否支持对应的方法 BngThea 发表于 2018-5-18 17:19
这个元素本身是可变的,所以可以修改,字符串等是不可变的
好的,可能list是个特例 >>> type(tuple1)
<class 'list'>
tuple1元组的内部列表了。
元组从来就没有insert 方法好吧。 ba21 发表于 2018-5-18 17:46
>>> type(tuple1)
我知道元组没有insert啊,我用insert改变的是元组中的list啊 zhdwinter 发表于 2018-5-18 17:55
我知道元组没有insert啊,我用insert改变的是元组中的list啊
所以没毛病啊,列表有insert方法,关外面的tuple干嘛。 tuple1 = '小甲鱼',['黑夜','迷途,小布丁'] // 你这个定义就不是元组!是列表 秋木叶 发表于 2018-5-18 18:07
tuple1 = '小甲鱼',['黑夜','迷途,小布丁'] // 你这个定义就不是元组!是列表
这个你真的弄错了 新手·ing 发表于 2018-5-18 18:05
所以没毛病啊,列表有insert方法,关外面的tuple干嘛。
我的意思是我直接通过修改list实现了修改tuple的功能,并没有通过切片的方法 zhdwinter 发表于 2018-5-18 18:19
这个你真的弄错了
学习了
页:
[1]