我正在执行此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)
enter code here
<class 'list'>
['9', '5', '4', '2', '1', '0']
<class 'str'>
954210
<class 'list'>
[9, 5, 4, 2, 1, 0]
TypeError: sequence item 0: expected str instance, int found
答案 0 :(得分:1)
如果我理解您的问题,则您正在接收输入(假设某些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()
。希望有帮助。