首页 > 解决方案 > 使用嵌套循环修改python中的数组

问题描述

我有一个数组 p=(1,2,4,5,7,10...) 我想在数组偏离 f=(1,2,3,4,5, 6...)。我曾尝试使用嵌套的 for 循环,但我不知道如何使用 python 制作所需的输出 =(1,2,0,4,5,0,7,0,0,10...)。

到目前为止,这就是我真正得到的一切,但它会在 p[1] 之前使用 f 的所有元素对 p[0] 进行迭代,我不知道如何防止这种情况发生:

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

谢谢!

标签: pythonarraysnested-loops

解决方案


我建议做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)

推荐阅读