我真的很喜欢Python的缩写循环,但有时候,我需要获得一个包含多个相同值的列表,我是用以下方式实现的:
plot(seconds, [z0 for s in seconds], '--')
但是那个未使用的s
因为美观原因让我感到不安。
有没有更短(而且更美观)的方法?比如某些特殊的值的“乘法”?
我真的很喜欢Python的缩写循环,但有时候,我需要获得一个包含多个相同值的列表,我是用以下方式实现的:
plot(seconds, [z0 for s in seconds], '--')
但是那个未使用的s
因为美观原因让我感到不安。
有没有更短(而且更美观)的方法?比如某些特殊的值的“乘法”?
你的意思是这样的:
[z0] * len(seconds)
[z0]*len(seconds)
提前警告:如果z0是可变数据类型,那么它将不能按照您的期望工作。
我觉得你现在的做法并不算很糟糕... 但是numpy.fill
函数更加整洁:
In [4]: import numpy as np
In [5]: x=np.empty(5)
In [6]: x.fill(8)
In [7]: x
Out[7]: array([ 8., 8., 8., 8., 8.])
[1] * 3 -> [1, 1, 1]
。 - Marius_
,除非你可以将其删除。 - njzk2__
被用作“垃圾”变量,特别是为了避免与单下划线_
的其他用途冲突,例如交互式解释器和gettext
模块。此外,虽然前导下划线使其对from <module> import *
不可见,但它的长度不足以触发类私有名称重整。 - Kevin J. Chase