Tuplify一些

use*_*505 1 python

def tuplify(number):
    x = str(number)
    if len(x) <= 0:
        return 0
    lst = []
    for i in range(0,10):
        if i == x[len(x)-1]:
            lst.append(i)
        return tuple(lst)
Run Code Online (Sandbox Code Playgroud)

这是我的代码,我无法得到我想要的输出.

tuplify(102486) 这应该给我 (1, 0, 2, 4, 8, 6)

the*_*eye 5

您可以将其转换为这样的数字元组

print tuple(map(int, str(102486)))
# (1, 0, 2, 4, 8, 6)
Run Code Online (Sandbox Code Playgroud)

但需要注意的是,在数前导零将不被保留.

除了事实,你比较一个字符串和一个数字,

if i == x[len(x)-1]:
Run Code Online (Sandbox Code Playgroud)

你总是比较i与最后一个元素.

此外,您想要返回一个元组,但如果该字符串为空,则返回零

if len(x) <= 0:
    return 0
Run Code Online (Sandbox Code Playgroud)

相反,一个空元组是合适的

if len(x) == 0:
    return ()
Run Code Online (Sandbox Code Playgroud)