鱼C论坛

 找回密码
 立即注册
查看: 2090|回复: 5

[已解决]reverse()

[复制链接]
发表于 2020-4-4 01:23:02 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
(1)
>>> list1=[1,2]
>>> list1.reverse()
想问一下为什么这个回车键按了以后不会有结果显示出来

(2)十进制转二进制
>>> def er(dec):
        temp=[]
        result=''
        while dec:
                quo=dec%2
                dec=dec//2
                temp.append(quo)
        while temp:
                result+=str(temp.pop())
        return result
        print(er(34))
小甲鱼是上面这样的,我想着把
while temp:
                result+=str(temp.pop())
换成     result=temp.reverse()
为什么显示:SyntaxError: unexpected indent



最佳答案
2020-4-4 18:01:48
yummyuyo 发表于 2020-4-4 17:33
谢谢,确实是混淆了
然后您打的那个代码,报错list是   invalid syntax。
后面的list(reversed(temp) ...

哦,那个是复制粘贴的时候,贴错了,本来是贴第一行的,贴到了下一行,最后忘记删除了。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-4-4 02:27:21 | 显示全部楼层
本帖最后由 sunrise085 于 2020-4-4 02:28 编辑

你可能把list.reverse()和reversed()弄混了
前者是list的一个方法,是将原列表进行翻转,直接修改的原列表,无返回值
后者是python的一个BIF,是将一个可迭代对象进行翻转,反回一个可迭代序列需要用list将之转为list,或者用tuple将至转为元组
小甲鱼是将列表中的各个元素pop出来转为字符串,并拼接在一起的。
你是想直接翻转列表,还将至进行字符串拼接吗?
翻转列表:list(reversed(temp))
这样就将列表temp翻转过来了,可以将之直接赋值给一个变量
若想达到小甲鱼的样子
则需要这样写
  1. temp= [str(i) for i in list(reversed(temp))]
  2. result="".join(temp)list(reversed(temp)
复制代码

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-4-4 07:25:07 | 显示全部楼层
(1)、你reverse之后再打印一遍List1就有了,reverse()只是个内置方法。

(2)、SyntaxError: unexpected indent

凡是显示上面这个错误的,都是你缩进错了,或者是空格和tab混用了,检查下你空格或缩进的位置。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-4-4 12:47:40 | 显示全部楼层
1. reverse() 没有返回值,它是在原列表上操作,所以需要再打印原来的列表:

   
  1. >>> list1 = [1, 2]
  2. >>> list1.reverse()
  3. >>> list1
  4. [2, 1]
复制代码


2. 缩进错了,你检查一下哪里缩进有错
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2020-4-4 17:33:06 | 显示全部楼层
sunrise085 发表于 2020-4-4 02:27
你可能把list.reverse()和reversed()弄混了
前者是list的一个方法,是将原列表进行翻转,直接修改的原列表 ...

谢谢,确实是混淆了
然后您打的那个代码,报错list是   invalid syntax。
后面的list(reversed(temp))是什么作用,不加这个好像也可以?
def er(dec):
        temp=[]
        result=''
        while dec:
                quo=dec%2
                dec=dec//2
                temp.append(quo)
        temp= [str(i) for i in list(reversed(temp))]
        result="".join(temp)list(reversed(temp)
        return result
                                 
SyntaxError: invalid syntax
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-4 18:01:48 | 显示全部楼层    本楼为最佳答案   
yummyuyo 发表于 2020-4-4 17:33
谢谢,确实是混淆了
然后您打的那个代码,报错list是   invalid syntax。
后面的list(reversed(temp) ...

哦,那个是复制粘贴的时候,贴错了,本来是贴第一行的,贴到了下一行,最后忘记删除了。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-30 20:16

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表