使用嵌套循环修改 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]
我有一个数组,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]