asterix *在Python中意味着什么

时间:2016-11-25 15:59:21

标签: python

我在python中使用了以下代码:

{{1}}

我在这做什么?我将数组乘以数字吗?结果是什么?

我看到了这个主题: What does asterisk * mean in Python?

但我猜它没有关联。

4 个答案:

答案 0 :(得分:2)

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

在列表的情况下,列表重复右侧给出的次数(在这种情况下括号无意义)。元组和字符串(str)对象可以以类似的方式相乘。

如果您想查看特殊方法及其相应的运算符,请参阅the operator module documentation

顺便说一下,你使用术语 array ,这是可以理解的来自其他语言。但是[0]不会创建数组,而是创建list对象。这可能听起来像语义,但数组确实存在于python中,但它们有专门的用途。标准库中有array modulenumpy模块也有数组,请参阅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]
>>>