Python列表第0个元素混淆了

时间:2016-09-24 09:22:57

标签: python list zero

我想编写一个函数decode(chmod),它将一个三位数的权限号作为字符串,并返回它授予的权限。 除非我要求第0个元素,否则它似乎有效。我无法弄清楚为什么会这样。

def decode(chmod):

    liste = [int(i)for i in str(chmod)]


    chmod = ["None", "Execute only", "Write only", 
        "Write and Execute", "Read only", 
        "Read and Execute", "Read and Write",
        "Read Write and Execute"] 

    for i in liste:

        print chmod[i]

    return liste

print decode(043)

2 个答案:

答案 0 :(得分:1)

你需要大约043的报价。试试'043'。

答案 1 :(得分:1)

(假设你要传递一个整数)

043是基数8与基数10中的35相同。因此,您将整数35传递给解码函数。

尝试更改str - > oct

liste = [int(i) for i in oct(chmod)[2:]] #Use [2:] in Py3, and [1:] in Py2