Dap*_*ire 6 python loops list python-2.7 python-3.x
我希望此代码为列表 p 中列表 s 中出现的项目的第一次出现附加 1,并为 s 中的其他出现和其他项目附加 0。
这是我当前的代码,它为所有出现的情况附加 1,我希望它仅在第一次出现时附加 1。请帮忙
s = [20, 39, 0, 87, 13, 0, 23, 56, 12, 13]
p = [0, 13]
bin = []
for i in s:
if i in p:
bin.append(1)
else:
bin.append(0)
print(bin)
# current result [0, 0, 1, 0, 1, 1, 0, 0, 0, 1]
# excepted result [0, 0, 1, 0, 1, 0, 0, 0, 0, 0]
Run Code Online (Sandbox Code Playgroud)
最简单的解决方案是从列表中删除该项目p(如果找到):
s = [20, 39, 0, 87, 13, 0, 23, 56, 12, 13]
p = [0, 13]
out = []
for i in s:
if i in p:
out.append(1)
p.remove(i)
else:
out.append(0)
print(out)
Run Code Online (Sandbox Code Playgroud)
印刷:
[0, 0, 1, 0, 1, 0, 0, 0, 0, 0]
Run Code Online (Sandbox Code Playgroud)