我有一个列表如下:
a = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
我想从列表中删除连续重复 12 次的零,以获得所需的输出
a = [1, 1, 0, 0, 1, 1]
我尝试使用索引,但很快意识到这也会删除不重复 12 次的零...
index = [0]
new_a = np.delete(a, index)
print(new_a)
最佳答案
代码
每一行都很好理解。
buffer = []
result = []
for n in num:
if n == 0:
buffer.append(n)
if n == 1:
if len(buffer) < 12:
result.extend(buffer)
result.append(n)
buffer = []
if len(buffer) < 12:
result.extend(buffer)
[1, 1, 0, 0, 1, 1]
技巧答案
- 使用正则表达式
- 您可以在 python.re 了解它
import re
line = "".join(str(n) for n in num)
ans = re.sub(r"0{12,}", "", t)
res = [int(n) for n in ans]
[1, 1, 0, 0, 1, 1]
关于python - 如何从列表中删除每 12 个零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72181628/