为什么我不能为下面的代码进入for循环
def maximumSwap(num):
A = map(int, str(num))
last = {x: i for i, x in enumerate(A)}
for i, x in enumerate(A):
print(i, x)
for d in range(9, x, -1):
if last.get(d, None) > i:
A[i], A[last[d]] = A[last[d]], A[i]
return int("".join(map(str, A)))
return num
我可以打印最后一个,但无法进入for循环。我也想知道int(num)
和map(int, str(num))
之间有什么区别
A
是一个迭代器,不能运行同一个迭代器两次。例如,参见http://stackoverflow.com/questions/3266180/。你知道吗如果确实需要在数据上循环两次,则必须重新创建迭代器或按顺序存储数据,可能是
list
:方法1:
方法2:
相关问题 更多 >
编程相关推荐