python中列表的乘法

时间:2017-07-06 00:46:32

标签: python

我知道有一些明显的东西让我失踪但是我宁愿清除我的困惑而不是捣乱。 为什么以下代码: [1] * 5 返回 [1,1,1,1,1]

而不是 [5]

[[1],[1],[1],[1],[1]]

1 个答案:

答案 0 :(得分:2)

一般而言,为序列定义乘法,而不仅仅是list s,无论所包含的值的类型如何。当然,[1] * 5 - > [5]list int有意义,但对于list strstr本身来说,它是荒谬的。

他们想要一个适用于所有类型序列的通用序列处理程序,因此他们将其定义为重复串联,而不是元素算术。正如juanpa在评论中提到的那样,这就形成了一致的定义:seq + seq是连接,因此seq * int只是seq + seq重复int次(嗯,seq重复int次,有四个虚拟连接),inta * intbinta + inta重复intb次的方式相同。

如果您想要逐元算术,请查看numpy数组。