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_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
解决方案
如果我理解您的问题,您将收到一个输入(假设某个 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()
首先转换。希望有帮助。
推荐阅读
- ios - otool 输出中的“binds_to_weak”和“weak_defines”标志是什么意思?
- c++ - 在目标纹理上复制源纹理,其中源大于目标
- python - ValueError:查看限制最小值 -0.5 小于 1,并且在绘制到条形图时是无效的 Matplotlib 日期值
- python - Python,将 n x m numpy 数组与 n 大小的 numpy 数组进行比较
- php - Laravel 5.7:如何使用多个框发送联系表
- c# - 字体 Aharoni 不支持常规样式
- php - 如何从无法安装任何东西的服务器发送电子邮件?
- c# - 有人可以向我解释一下这个 Chunk Size 值吗
- sql - BigQuery 标准 SQL:将值设置为正无穷或负无穷
- java - 未调用 Rest Controller 中的获取服务