【发布时间】:2016-05-02 12:24:01
【问题描述】:
[k for k in range (1,42) if k%2 != 0]
输出:[1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41]
现在,我想做到:
[-1, 3, -5, 7, -9, 11, -13, 15, -17, 19, -21, 23, -25, 27, -29, 31, -33, 35, -37, 39, -41]
所以我尝试了:
def test(N):
k = []
for i in range (1,N+1):
if(i%2 != 0):
k.append(i)
for b in k[::2]: <--- it changes the value but doesn't update the list
b = -b
return k
test(43)
关于如何解决这个问题的任何想法或建议?或者另一个问题是,如何在将元素更新为负值的同时遍历列表中的偶数索引
【问题讨论】:
-
也许用
k%4做点什么 -
如果你学过微积分的话,看起来就像一个交替的系列。尝试乘以
(-1)**(k + 1)
标签: python python-3.x list-comprehension