在python中使用列表反转数字
我想反转一个数字,但出现以下错误: “TypeError:'type'对象不可下标” 如果您能更正我的代码,我将不胜感激。这是我的代码:在python中使用列表反转数字,python,list,reversing,Python,List,Reversing,我想反转一个数字,但出现以下错误: “TypeError:'type'对象不可下标” 如果您能更正我的代码,我将不胜感激。这是我的代码: number=input("enter your number ") num=int(number) count=0 list1=[] while(num!=0): list1.append(num%10) num=num//10 count=count+1 print(list1[::-1]) k=len(list1) after=0
number=input("enter your number ")
num=int(number)
count=0
list1=[]
while(num!=0):
list1.append(num%10)
num=num//10
count=count+1
print(list1[::-1])
k=len(list1)
after=0
for h in range(k):
after+=int(list[h])*(10**h)
h=-1
print(after)
您必须将
int
转换为str
,反转字符串并将其转换回
我会这样做:
number = input("enter your number ")
number = int(str(number)[::-1])
您必须使用第13行中的列表1 另外,我不确定您想做什么,您的算法似乎不正确,代码根本不是pythonic 了解地图功能。 如果您想使用列表执行此操作。 (不要使用典型的C++循环) 要将一个数字拆分为单个数字列表,请使用:
list1 = map(int,str(num))
您可以使用列表(创建、反转、连接)轻松完成此操作: 或者更简单:
int(str(num)[::-1])
我也能做到这一点
return eval(str(number)[::-1])
阅读有关扩展切片方法的更多信息,了解更多信息
'list'!='列表1'
…在+=int(列表[h])*(10**h)之后,
需要在+=int(列表1[h])*(10**h)之后您注意到它在抱怨哪一行了吗?谢谢您的帮助。我必须更加小心。“列表是一个python关键字”-严格来说,您可以对自己的对象使用list
,尽管这是不鼓励的。OP的问题很简单,他们没有给它分配一个列表-如果他们使用了不同的名称,他们会有名称错误
而不是类型错误
。感谢您的帮助和指导。我阅读了关于map函数的内容,发现了基本的问题解决方法,而不是pythonical编码,花费了我很多时间,而且以这种方式编写代码根本没有效率。我刚刚开始编写python。我使用高级程序员指南是一个高效和消息灵通的方法。这是一个多么简单的方法!谢谢你的有用提示!谢谢你的有用提示!
return eval(str(number)[::-1])