使用嵌套循环修改 python 中的数组

Modifying an array in python using nested loops

我有一个数组,p=(1,2,4,5,7,10...),我想在数组偏离 f=(1,2,3 ,4,5,6...)。我试过使用嵌套的 for 循环,但我无法弄清楚如何使用 python.

这就是我到目前为止真正得到的所有信息,但是它在继续 p[1] 之前用 f 的所有元素迭代 p[0],我不知道如何防止这种情况发生:

for x in f:
    for y in p:
        if x==y:
            print(x)
            break
        else:
            print('0')

谢谢!

我建议制作 p 集合,以便快速检查成员资格:

>>> p = (1,2,4,5,7,10)
>>> p_set = set(p)
>>> tuple([i if i in p_set else 0 for i in range(11)])
(0, 1, 2, 0, 4, 5, 0, 7, 0, 0, 10)

代码:

p =(1,2,4,5,7,10)
f =tuple(range(1,11))
for x in f:
    for y in p:
        if x == y:
            print(x)
            break
    else:
        print('0')

结果:

1
2
0
4
5
0
7
0
0
10

您不需要嵌套循环,只需遍历完整数字的数组并插入一个零即可。例子

p = [1,2,3,4,5,6,7,8,9,10,11,12,13,14, 15]
f = [1,2,4,5,6,7,10,14,15]

for index,i in enumerate(p):
    if i == f[index]:
        pass
    else:
        f.insert(index, 0)

结果

[1, 2, 0, 4, 5, 6, 7, 0, 0, 10, 0, 0, 0, 14, 15]