Python:迭代列表

时间:2017-11-11 17:28:23

标签: 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 

1 个答案:

答案 0 :(得分:1)

您的列表k在开始循环之前只有一个元素被追加。因此它是一个长度的列表,因此它只运行一次。

重新思考你的理论。