Python 3.x 将整数转换为字符串,然后再转换回整数

Python 3.x 将整数转换为字符串,然后再转换回整数,python-3.x,Python 3.x,我正在做这个python练习,目标是让用户输入一个整数,函数应该能够重新排列(降序)。我决定首先将整数转换为字符串,这样我可以从中进行迭代,结果存储在一个列表中。但当我尝试将它转换回整数时,它没有被转换 def conversion(nums): int_to_str = str(nums) list_int = [] ans = [] for x in int_to_str: list_int.append(x) list_

我正在做这个python练习,目标是让用户输入一个整数,函数应该能够重新排列(降序)。我决定首先将整数转换为字符串,这样我可以从中进行迭代,结果存储在一个列表中。但当我尝试将它转换回整数时,它没有被转换

def conversion(nums):


    int_to_str = str(nums) 
    list_int = []
    ans = []

    for x in int_to_str: 
        list_int.append(x)


    list_int.sort(reverse=True)   

    ans = list_int          
    print (type(ans))
    print(ans)
    ans = ''.join(list_int) 
    print(type(ans))
    print(ans)



    str_to_int = [int(x) for x in list_int]  # LIST COMPREHENSION to convert 
                                             # string back to integer type 
    print(type(str_to_int))
    print(str_to_int)

    final = ''.join(str_to_int)
    print(type(final))
    print(final)
如下面的代码所示,我尝试打印变量的类型,以便查看它是否被转换

def conversion(nums):


    int_to_str = str(nums) 
    list_int = []
    ans = []

    for x in int_to_str: 
        list_int.append(x)


    list_int.sort(reverse=True)   

    ans = list_int          
    print (type(ans))
    print(ans)
    ans = ''.join(list_int) 
    print(type(ans))
    print(ans)



    str_to_int = [int(x) for x in list_int]  # LIST COMPREHENSION to convert 
                                             # string back to integer type 
    print(type(str_to_int))
    print(str_to_int)

    final = ''.join(str_to_int)
    print(type(final))
    print(final)
在此处输入代码
['9', '5', '4', '2', '1', '0']
954210
[9, 5, 4, 2, 1, 0]
TypeError:序列项0:应为str实例,找到int

如果我理解您的问题,您将收到一个输入(假设字符串表示为某个int),您希望将该输入转换为整数列表,然后反向排序并返回。如果是这样的话:

def reverse_numeric_input(x):
    try:
        if type(x) != str:
            x=str(x)
        lst=[int(i) for i in x]
        lst.sort(reverse=True)
        return "".join([str(i) for i in lst])
    except Exception as e:
        print("%s error coverting ur input caused by: %s" % (e.__class__.__name__, str(e)))     

您发布的代码中的问题在于这一行
final=''。join(str_to_int)
当您调用
join
时,必须首先将连接的项目转换为
str()
。希望能有所帮助。

很抱歉,这让人困惑,你是在要求一个反转整数输入的函数吗?i、 e.
输入:123
-->
输出:321