我有这个代码
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,但它仍然显示无无......
我的编译器没有调试器,所以我不知道怎么找出来。有人可以帮忙吗?
答案 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')