1

我有这个代码

def display(s1,s2):
    l1 = list(s1)
    l2 = list(s2)
    l3 = [None]*10
    for i in range(10):
        for j in range(10):
            if i==l2[j]:
                l3[j] = l1[i]
    return l3

print display('3941068257', '1234567890')

示例:list1 的位置 0 中的 3;0 在 list2 的第 9 位 => 我们将在名为 l3 的新列表的第 9 位显示 3 等等....

所以程序应该像那样显示 9410682573 但它仍然显示 None none ......

我的编译器没有调试器,所以我不知道如何找到。任何人都可以帮忙吗?

4

1 回答 1

5

您正在将字符串(的一个字符元素l2)与整数进行比较。它总是失败。

这是因为发生了以下情况:

l2 = ['3','9','4','1','0','6','8','2','5','7']  # when you do "l2 = list(s2)"
for i in [0,1,2,3,4,5,6,7,8,9]:  # when you do "for i in raange(10)"

类型不匹配。

而是这样做:

def display(s1,s2):
    l1 = list(s1)
    l2 = list(s2)
    l3 = [None]*10
    for i in range(10):
        for j in range(10):
            if str(i) == l2[j]:  # <-- change is here
                l3[j] = l1[i]
    return l3

print display('3941068257', '1234567890')
于 2012-05-23T02:13:18.813 回答