Python:在lis上迭代

2024-05-19 15:05:40 发布

您现在位置:Python中文网/ 问答频道 /正文

用我的代码,我会,除了循环一次后,他会跳到列表中的下一个数字,但他没有。有人知道我的代码有什么问题吗?你知道吗

    for j in range(len(k)):
        s = [int(i) for i in str(k[j])]

这两行代码是我正在解决的一个更大问题的一部分。你知道吗

def kaprekarseries(n):
    """
    >>> kaprekar_series(677)
    [677, 99, 0]
    >>> kaprekar_series(9876)
    [9876, 3087, 8352, 6174]
    >>> kaprekar_series(55500)
    [55500, 54945, 50985, 92961, 86922, 75933, 63954, 61974, 82962] 
    """

    k = list()
    k.append(n)
    count = 0

    while count < 10:
        for j in range(len(k)):
            s = [int(i) for i in str(k[j])]
            m = sorted(s, key=int, reverse=True) 
            m2 = int(''.join(str(i) for i in m))
            l = sorted(s, key=int)
            l2 = int(''.join(str(i) for i in l))
            g = m2 - l2
            k.append(g)
            if [item for item in k if k.count(item) <= 1]:
                count += 1
            else:
                return k 

Tags: key代码inforlencountrangeitem
1条回答
网友
1楼 · 发布于 2024-05-19 15:05:40

在开始循环之前,列表k只追加了一个元素。所以它是一个长度的列表,所以它只运行一次。你知道吗

重新考虑你的算法。你知道吗

相关问题 更多 >