面馅包子 发表于 2021-12-15 15:39:44

问个知识点

什么东西是不能用乘法 因为乘完后如果改变被乘的元素,整个结果里所有元素都会改变?
拿列表举个不恰当的例子。。类似 a=*5 得到a= 如果a=0 结果就会得到a=这种

冬雪雪冬 发表于 2021-12-15 15:39:45

首先你的结果是不对的
>>> a=*5
>>> a

>>> a=0
>>> a

只有这样才会有你说的现象
>>> a=[]*5
>>> a
[, , , , ]
>>> a=0
>>> a
[, , , , ]

这是由于列表中每个值都有独立的地址,直接复制不会改变其他的值
而列表嵌套,则乘法得到的二级列表的地址是一样的,改变二级列表中的元素,是会使每个二级列表都改变的。
这里要参考可变对象的概念。
如想得到独立的结果需要:
>>> a = [ for i in range(5)]
>>> a
[, , , , ]
>>> a = 0
>>> a
[, , , , ]
>>>

kogawananari 发表于 2021-12-15 15:49:02

numpy了解一下

面馅包子 发表于 2021-12-15 15:51:09

kogawananari 发表于 2021-12-15 15:49
numpy了解一下

啊。。不是很懂

kogawananari 发表于 2021-12-15 16:11:11

面馅包子 发表于 2021-12-15 15:51
啊。。不是很懂

numpy的矩阵类型可以加减乘除作用于所有元素

傻眼貓咪 发表于 2021-12-15 16:11:38

面馅包子 发表于 2021-12-15 15:51
啊。。不是很懂

是啊,不是很懂你的问题{:10_247:}

qq1151985918 发表于 2021-12-15 16:28:44

本帖最后由 qq1151985918 于 2021-12-15 16:29 编辑


map函数了解一下

qq1151985918 发表于 2021-12-15 16:37:31

我刚看了下回复,都说不太理解你的意思,如果你是想将列表内元素按照某种相同规则使元素发生对应规则的改变的话,那么就是map函数没错,这个就是映射
页: [1]
查看完整版本: 问个知识点