繁体   English   中英

Python 添加有条件的列表项

[英]Python add list items with condition

我有这样的场景:

main = [200,300,400,500]
sec = [0,0,1,0]
new = []

条件是,

  1. 如果第二个列表中的元素等于0,则添加第一个列表中的元素。 (即) sec 列表中的元素为 0,因此 main 中的元素必须为 500(200+300)。
  2. 如果第二个列表中的元素等于 1,则在第一个列表中将上述元素向下放置。 (即)第一个列表中的元素是 1,所以主列表中的元素必须与前面的相同。

output 必须像,

new = [200,500,500,900]

对于给定的条件和约束,这很好用

main = [200,300,400,500]
sec = [0,0,1,0]
new = []

j=0
for i in sec:
    if  i==0 and len(new)!=0:
         new.append(new[-1]+main[j])
         j+=1
    elif i==0 and len(new)==0:
         new.append(main[j])
         j+=1
    elif i==1:
         new.append(new[-1])
print(new)
       
main = [200,300,400,500]
sec = [0,0,1,0]
new = [main[0]]

for i in range(1, len(main)):
    if sec[i]:
        new.append(new[-1])
    else:
        new.append(main[i] + main[i - 1])
        
print(new)

怎么样:

main = [200,300,400,500]
sec = [0,0,1,0]
mem = 0
new = [main[0]]
for idx in range(1,len(main)):
    mem = mem if sec[idx] else sum(main[idx-1: idx+1])
    new.append(mem)
new
[200, 500, 500, 900]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM