用其他代替

时间:2017-03-23 09:25:17

标签: python list conditional-statements

假设我有6个值

elem=[a,b,c,d,e,f]

f总是!= 0但其他一个总是= 0(一次一个)。

我想知道如何检查elem []中的哪一个等于零,并在newelem中用f替换该值。

实施例

elem=[1,2,3,0,5,6] --> newelem=[1,2,3,6,5]

现在,我有这样的事情:

if elem[0]=0:
   newelem=[elem[6],elem[1],elem[2],elem[3],elem[4]]

elif elem[1]=0:
   newelem=[elem[0],elem[6],elem[2],elem[3],elem[4]]

等...

3 个答案:

答案 0 :(得分:1)

#a.index(0) Gets you the index of element with value 0
#a.pop() removes and returns the last element of the array

a[a.index(0)] = a.pop()

答案 1 :(得分:1)

>>> list(map(lambda x: x if x!=0 else elem[-1], elem))[:-1]
[1, 2, 3, 6, 5]

list comprehension

[i if i!=0 else elem[-1] for i in elem][:-1]

答案 2 :(得分:0)

您可以使用pop(),只需找到要删除的元素

>>> elem=[1,2,3,0,5,6]
>>> elem.pop(3)
0
>>> elem
[1, 2, 3, 5, 6]

结束然后将新元素推送到这个地方

elem.insert( 3, 6)

之后再次弹出elemem,移动到你有“0”的地方