如果我有一个输入作为列表有什么问题?

2024-03-28 18:33:57 发布

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

当我有一个字符串输入时,下面的方法可以正常工作,但是当输入是int,plz advice的列表时,它会抛出一个错误" TypeError: can only concatenate list (not "int") to list"

def permutation(string):
    result=[]
    if len(string)== 0:
        return [[]]
    if len(string)==1:
        return [string]

    perms= permutation(string[1:])

    print("perms are", perms)
    char= string[0]
    for i in range(len(string)+1):
        for perm in perms:
            result.append(perm[i:]+char+perm[:i])

    return result

print(permutation([1,2,3])

为什么这个代码可以正常工作?你知道吗

def permute(nums):
    return [[n] + p
            for i, n in enumerate(nums)
            for p in permute(nums[:i] + nums[i+1:])] or [[]]

Tags: inforstringlenreturnifdefresult
1条回答
网友
1楼 · 发布于 2024-03-28 18:33:57

这条线:

result.append(perm[i:]+char+perm[:i])

char是int时不起作用,因为+可以附加列表,但不能附加int和列表。Python没有单独的字符类型,因此在string情况下,char只是一个元素字符串,因此字符串连接可以与+一起使用。你知道吗

在int情况下,可以执行以下操作:

result.append(perm[i:]+[char]+perm[:i])

它将char包装在一个列表中,现在可以连接起来。你知道吗

相关问题 更多 >