我在python中使用了以下代码:
{{1}}
我在这做什么?我将数组乘以数字吗?结果是什么?
我看到了这个主题: What does asterisk * mean in Python?
但我猜它没有关联。
答案 0 :(得分:2)
Python中的运算符很神奇。它们根据操作数的类调用特殊方法。在这种情况下,从__mul__
类调用一个名为list
的特殊方法,因为列表对象位于左侧。
在列表的情况下,列表重复右侧给出的次数(在这种情况下括号无意义)。元组和字符串(str
)对象可以以类似的方式相乘。
如果您想查看特殊方法及其相应的运算符,请参阅the operator
module documentation。
顺便说一下,你使用术语 array ,这是可以理解的来自其他语言。但是[0]
不会创建数组,而是创建list
对象。这可能听起来像语义,但数组确实存在于python中,但它们有专门的用途。标准库中有array module,numpy
模块也有数组,请参阅here。但是对于日常使用,list
是常态。
答案 1 :(得分:1)
如果您运行代码[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, 3, 1, 2, 3]
。所以星号重复/ 乘以列表。
答案 2 :(得分:0)
你正在制作并连接六份副本。即[0] * 6 == [0, 0, 0, 0, 0 ,0]
答案 3 :(得分:-2)
Snarky回答。对不起,但我不能帮助自己...这将是如此少的工作然后发布在这里!!!!
这是我通过输入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]
>>>