在Python中一个列表*5和*=5有什么区别吗???

这是我学习Python中发现的问题,迷惑不解,求解答

Python里面的+=,*=,-=等等为增强操作符,一般来讲是用于简化代码,并在一定情况下可以增加代码运行速度。(i = i+1,等同于i +=1,换成你问题里面的5也是一样的)

这里面也会有一个问题,那就对于i是否为可变数据类型处理方式不一样,可能会造成问题,具体本差异见图片中示例:

温馨提示:内容为网友见解,仅供参考
第1个回答  2020-08-12
列表*5会生成一个新列表,新列表的元素是原列表元素重复5次得到的,且新列表与原列表是两个不同的对象(id不同),新列表不是通过在原列表(对象)上追加元素得到的。
如:
l1=[1]
l2=l1*5
#[1] [1,1,1,1,1]
print(l1,l2)
#id是不同的,说明是不同的对象
print(id(l1),id(l2))

而列表*=5是通过在原列表(对象)上追加元素得到的。
如:
l3=[2]
l4=l3
l3*=5
#[2,2,2,2,2] [2,2,2,2,2]
print(l3,l4)
#id相同,说明是同一个对象
print(id(l3),id(l4))

在Python中一个列表*5和*=5有什么区别吗???
Python里面的+=,*=,-=等等为增强操作符,一般来讲是用于简化代码,并在一定情况下可以增加代码运行速度。(i = i+1,等同于i +=1,换成你问题里面的5也是一样的)这里面也会有一个问题,那就对于i是否为可变数据类型处理方式不一样,可能会造成问题,具体本差异见图片中示例:...

初始化一个列表 python
multi = [[0] * 5] * 3 其实,这样做是不对的,因为[0] * 5是一个一维数组的对象,* 3的话只是把对象的引用复制了3次,比如,我修改multi[0][0]:multi = [[0] * 5] * 3 multi[0][0] = 'Hello'print multi 输出的结果将是:[['Hello', 0, 0, 0, 0], ['Hello', 0...

一个python中嵌套列表的问题,下图中的两种写法,结果不一样,这是为什么...
而你直接写[[0],[0],[0]],可以理解为这三个[0]是三个不同的人.至于为什么[[0]]*3得到的是[[0],[0],[0]], 而直接定义[[0],[0],[0]]看着是一样, 但当修改元素值的时候,得到的结果却不同,这就是python的实现机制了,不用太纠结这个,因为python就是这样设计的,你只需要明白这个...

python数组和列表的区别?
Python中的数组和列表是两个不同的数据结构。区别解释:1. 数据存储方式:Python中的列表是一个动态数组,它可以包含任何数据类型,包括整数、浮点数、字符串、甚至其他列表。而数组通常用于数学计算,它要求所有元素类型一致,且大小固定。Python的数组模块在底层是用连续的内存块存储数据,适用于高性能的数...

python列表赋值的问题?
在Python中,使用*a*n语法时,其实是在创建一个列表,其中包含了a的值n次。若a是数值或字符串等基本类型,操作无误。但若列表存储的是对象,情况则不同。Python中的所有对象都是通过引用方式存在的。例如,当使用[[1,2,3]]*3时,实际上生成的是对[1,2,3]的引用,总共三次。因此,最终指向的...

python中语句a=[1]*6是什么意思?
应该是这个列表乘6次的意思(列表就是[1])

在Python中,a[:]和a[::]的区别是什么?
列表切片,a[起始指标 : 终止指标:跳跃步长]。这三个指标的意思就是从哪里跳到哪里,每次跳几个。如果第三个没有,默认为1.所以打印的是一样的。

Python问题?
即x=[[1]]*3执行完后,x保存了3个引用,这3个引用保存的是同一个列表对象的地址。通过任何一个引用修改了列表对象的值后,通过其它引用访问到的列表对象也是修改后的。因为这3个引用保存的是同一个列表对象的地址。这就像你有许多编了号的箱子,而你在一个编号为1的箱子中放了一个苹果,然后将...

Python中.*和.*?的区别
普通字符串中没有区别:如'abc'和"abc"是一样的;如果字符串中本身就有单引号或双引号,则要使用另一种引号将该字符串引起来才合法:如'he is a "student" !' , “he is a 'student' !”3.接着2说,如果字符串中本身就有单引号或双引号,还有一种合法的使用方式是,最外层使用的引号和...

python中列表和元组之间有什么区别?
1. Python中的列表(List)和元组(Tuple)是用来存储序列数据的内置数据类型,但它们之间有几个关键区别。2. 首先,列表是可变的,这意味着我们可以在创建列表后添加、删除或更改其元素。而元组是不可变的,一旦创建就不能修改。3. 其次,元组通常用于存储具有不同意义的异构数据,如一对坐标中的经度...

相似回答