python - 与 Vampire Numbers 列表比较失败

标签 python list python-2.7

此代码检查数字组合是否产生 vampire number但如果 x = 2947051 和 y = 8469153,则返回不正确的 True。

def vampire_test(x, y):
    vamp = (list(str(x) + str(y)))
    prod = x*y
    vamp_check = list(str(prod))

    print vamp, vamp_check

    if '-' in vamp and '-' not in vamp_check:
        return False
    else:
        check = cmp(vamp.sort(),vamp_check.sort())
        if check == 0 and len(vamp) == len(vamp_check):
            return True
        else:
            return False

问题是什么?我该如何改进我已经编写的代码?

最佳答案

逻辑有问题。这一行:

check = cmp(vamp.sort(),vamp_check.sort())

每次都会做check = 0,因为list.sort()方法原地排序,返回None

关于python - 与 Vampire Numbers 列表比较失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28871940/

相关文章:

python - 同一个套接字对象如何服务于不同的客户?

python - 在 python 的子进程中调用 bash 时缺少别名设置

python - 如何向 tkinter 窗口添加填充,而不需要 tkinter 将小部件居中?

java - 相对排序 - insertBefore() 和 insertAfter() 方法

python - 如何在 Windows 命令行中使用参数运行 Python 脚本

python - 如何访问嵌套字典键来制作 Pandas DataFrame

python - 将一个列表中的元素匹配到另一个列表,跳过已经匹配的元素,Python

python - 将输出与列表/数组进行比较

python - 如何在Python中按间隔时间重置循环

python - 从另一个文件导入和更改变量