我怎样才能根据一定的限制生成一个列表,它从无穷远处取数,0总是在中间?

2024-05-05 08:33:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我如何根据一定的限制(解释如下)生成一个列表,它从无穷远处取数,0总是在中间?你知道吗

例如:

NumberOfItem = 5     #this will decide there will be only 5 item in the list 

dfNum= 1     #different between number 

this list should look: 
[-2,-1,0,1,2]

另一个例子是在偶数的情况下,负数将大于正数+1项

NumberOfItem = 4     

dfNum= 0.5     

this list should look: 
[-1.0,-0.5,0,0.5,]

最好找到一个不使用循环的解决方案(例如。。(或同时)


Tags: inonly列表bethisitemwilllist
2条回答

您可以使用以下功能:

def make_list(NumberOfItem, dfNum):
    l = map(lambda x:x*dfNum, xrange(-(NumberOfItem/2), (NumberOfItem+1)/2))
    return l

编辑:

按如下方式使用:my_list = make_list(5,1)my_list = make_list(4,0.5)print make_list(3,1)

括号中的第一个值是NumberOfItem,第二个值是dfNum。你知道吗

这是一种使用列表理解的方法:

[(x - 5 // 2) * 1 for x in range(5)]
[(x - 4 // 2) * 0.5 for x in range(4)]

一般来说:

[(x - NumberOfItem // 2) * dfNum for x in range(NumberOfItem)]

你所说的“差异”也可以看作是“比例因子”。你知道吗

相关问题 更多 >