Python3:列表返回none类型,因此我无法在后面的函数中遍历它

2024-09-28 01:29:56 发布

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

def randomSet (n, up):

    """Build a random 'set' of integers.

    >>> randomSet(4, 10)
    [5, 3, 2, 8]

    Params: 
        n (int): # of integers in the set
        up (int): upperbound 
    Returns: (list) random 'set' of n integers between 0 and up, inclusive
    """

    A = []
    for i in range(0,n):
        randomInt = randrange(0, up)

        def checkDuplicates (randomInt):
            if randomInt not in A:
                A.append(randomInt)
            else:
                randomInt = randrange(0,up)
                checkDuplicates(randomInt)

        checkDuplicates(randomInt)

    return A

我读过几个答案,通常是有人按照a=a.append(randomInt)的思路做了一些事情,返回nonetype,但我不明白为什么是我的。 编辑:如果我尝试打印列表,它会。但是如果我输入(A),它将返回none,并且不允许我在另一个函数中迭代它。你知道吗

当我运行这段代码时,问题就出现了。你知道吗

def printSet (A):

    """Print a 'set', using standard set notation.

    >>> printSet ([1,2,3,4])
    {1, 2, 3, 4}

    >>> printSet ([[1,2], [1,3]]
    {{1, 2}, {1, 3}}

    Params: A (list): set of integers, represented internally as a list
    """
    newSet = set()
    for a in range(len(A)):
        if A[a] not in newSet:
            newSet.add(A[a])
        else:
            printSet(A)

    print(A, end='')

TypeError:类型为“NoneType”的对象没有len() ^指向:对于范围(len(a)):


Tags: ofintegersinlendefrandomparamslist

热门问题