asterix*在Python中的含义是什么

asterix*在Python中的含义是什么,python,Python,我用python编写了以下代码: p=[0]*6 我在这里干什么?我是将数组和数字相乘吗?结果如何 我看到这个话题: 但我想这没有关系。您正在制作并连接列表的六个副本。也就是说,[0]*6==[0,0,0,0,0,0]如果你运行代码[0]*6,你会得到[0,0,0,0,0,0]。类似地,如果运行[1,2,3]*6,则得到[1,2,3,1,2,3,1,2,3,1,2,3,1,2,2,3]。因此,星号重复/乘以列表 Python中的运算符很神奇。它们根据操作数的类调用特殊方法。在这种情况下,将从l

我用python编写了以下代码:

p=[0]*6

我在这里干什么?我是将数组和数字相乘吗?结果如何

我看到这个话题:


但我想这没有关系。

您正在制作并连接列表的六个副本。也就是说,[0]*6==[0,0,0,0,0,0]

如果你运行代码[0]*6,你会得到[0,0,0,0,0,0]。类似地,如果运行[1,2,3]*6,则得到[1,2,3,1,2,3,1,2,3,1,2,3,1,2,2,3]。因此,星号重复/乘以列表

Python中的运算符很神奇。它们根据操作数的类调用特殊方法。在这种情况下,将从list类调用一个名为_mul__的特殊方法,因为list对象位于左侧

在列表的情况下,列表按右边给出的次数重复。在这种情况下,括号没有意义。Tuple和string str对象可以以类似的方式相乘

如果要查看特殊方法是什么及其相应的运算符,请参阅


顺便说一句,您使用了术语数组,这可以从其他语言中理解。但是[0]不创建数组,而是创建列表对象。这听起来像语义学,但数组确实存在于python中,但它们有专门的用途。标准库中有一个数组,numpy模块也有数组,请参阅。然而,对于日常使用来说,列表是标准的。

尖刻的回答。对不起,我不能控制自己。。。这将是如此少的工作,然后张贴在这里

这是一个屏幕截图,我通过键入15个字符来找到答案

[temp548@compute-0-96 CUDA]$ python
Python 2.4.3 (#1, Sep 21 2011, 19:55:41)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-51)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> [0] * 6
[0, 0, 0, 0, 0, 0]
>>>

为什么不运行它呢?将与p=[0,0,0,0,0,0,0]相同,请注意执行p=[[]]*6显然有些程序员年轻时掉进了一个空锅里。。。。并连接它们。还要注意,结果包含浅拷贝!