Python:比较一个数组中的值,并在第一个数组的相同索引处替换另一个数组中的该值

时间:2016-03-16 19:20:09

标签: arrays python-2.7

我正在尝试接受用户输入并将该输入与数组B中的值进行比较。如果用户输入与数组B中的其中一个值匹配,我会捕获它所在的索引并将数组A替换为用户输入在相同的索引处,它在数组B中找到它。

在代码示例中,如果我输入11,它在数组B中找到11并将其插入到数组A中的相同索引点。但是如果我选择22,33或44,则它不会替换任何内容。

您认为以下代码有什么问题?为什么它识别数组B中的数字11并将其替换为数组A中的1,而不是其他数字?

a = [1,2,3,4]
b = [11,22,33,44]
c = input("Enter a Number: ")

for i in b:
    if c == i:
        x = b.index(i)
        a.pop(x)
        a.insert(x,c)
        break
    else:
        print "Not in list b"
        break

print a 

1 个答案:

答案 0 :(得分:0)

试试这个:

a = [1,2,3,4]
b = [11,22,33,44]
c = input("Enter a Number: ")

for i in b:
    if c == i:
        x = b.index(i)
        print x
        a.pop(x)
        a.insert(x,c)
        break
else:
    print "Not in list b"

print a

else语句置于for循环之外应使其按预期工作。实际上,在1次迭代后,循环将在100%的时间内break