0

我知道这是最简单和最简单的检查方法:

if val == val[::-1]:
    print "yes"
else:
    print "no"

但只是为了练习,我想用嵌套的 for 循环来测试它(使用这个reversed()函数——我花了几个小时,但不太清楚在哪里做正确的事continuebreak

for i in val:
    for j in reversed(val):
        if i == j:
            break
    break
4

3 回答 3

3

这应该这样做:

for i, j in zip(val, reversed(val)):
    if i != j:
        print 'no'
        break
else:
    print 'yes'

编辑:非常感谢@jamylak 指出循环else子句。for我一直忘记这一点!

但是,我可能会这样做:

print 'yes' if list(val) == list(reversed(val)) else 'no'
于 2012-05-18T07:46:07.663 回答
2
for i in range(len(val)/2):
    if val[i] != val[-i-1]:
        return False
return True
于 2012-05-18T07:46:29.530 回答
0

这不是嵌套循环的用例。当您想将某事物的每个元素与其他事物的每个元素进行比较时,嵌套循环很有用。在您的情况下,您只想将第一个位置与最后一个位置进行比较,将第二个位置与倒数第二个位置进行比较,依此类推。你需要这样做:

for i in range(len(val)/2):
    if val[i] != val[-i-1]:
        continue
    else:
        break
于 2012-05-18T09:16:49.933 回答