Python-创建图案列表



在我当前的Python项目中,我需要创建一些长整数列表,以供以后在图中使用。目前,我正在以以下方式攻击这一点:

volume_axis = []
for values in stripped_header: 
    for doses in range(100):  
        volume_axis.append(int(values))

此代码将附加到我的空白列表中,为我提供了100次剥离标头的第一个值,然后在100次剥落的标题中的下一个值。

是否有一种更优雅,更优雅的pythones式方法可以实现这一目标?

for values in stripped_header: 
    volume_axis += [int(values)] * 100

或使用Itertools(可能更有效)

from itertools import repeat
for values in stripped_header:
    volume_axis += repeat(int(values), 100)

这个问题有许多好的Pythonic答案,但是如果您乐于使用Numpy(无论如何这是Matplotlib的依赖性),那么这是一个衬里:

>>> import numpy
>>> stripped_header = [1, 2, 4]
>>>
>>> numpy.repeat(stripped_header, 3)
array([1, 1, 1, 2, 2, 2, 4, 4, 4])

hth

使用 itertools

from itertools import chain, repeat
list(chain.from_iterable(repeat(int(n), 100) for n in sh))

考虑 sh表示剥离

In [1]: sh = [1,2,3,4]
In [2]: [x for x in sh for y in [sh]*5]
Out[2]: [1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4]

,也可以随心所欲以易于理解

In [3]: [x for x in sh for y in range(5)]
Out[3]: [1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4]

相关内容

  • 没有找到相关文章

最新更新