python中列表的索引

时间:2012-05-23 02:11:16

标签: python

我有这个代码

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; list2的位置9中的0 =>我们将在名为l3的新列表中的第9位显示3 ......等等....

所以程序假设显示如9410682573,但它仍然显示无无......

我的编译器没有调试器,所以我不知道怎么找出来。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:5)

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

因为以下情况发生了:

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')