当前位置: 首页 > 面试题库 >

为什么[] .append()在python中不起作用?

房育
2023-03-14
问题内容

为什么这项工作有效-

a = []
a.append(4)
print a

但这不是-

print [].append(4)

第二种情况下的输出为None。你能解释一下输出吗?


问题答案:

append方法没有返回值。它会在适当的位置更改列表,并且由于您没有将分配[]给任何变量,因此只是“迷失在空间”

class FluentList(list):
    def append(self, value):
        super(FluentList,self).append(value)
        return self

    def extend(self, iterable):
        super(FluentList,self).extend(iterable)
        return self

    def remove(self, value):
        super(FluentList,self).remove(value)
        return self

    def insert(self, index, value):
        super(FluentList,self).insert(index, value)
        return self

    def reverse(self):
        super(FluentList,self).reverse()
        return self

    def sort(self, cmp=None, key=None, reverse=False):
        super(FluentList,self).sort(cmp, key, reverse)
        return self

li = FluentList()
li.extend([1,4,6]).remove(4).append(7).insert(1,10).reverse().sort(key=lambda x:x%2)
print li

我没有重载所有有问题的方法,但是概念应该很清楚。



 类似资料:
  • 编写一个程序来检查列表中是否存在给定的数字。如果存在,则显示元素在列表中的位置。如果该元素不存在,则将该元素添加到列表中。

  • 问题内容: 整数有一个方法: …但是调用它会引发SyntaxError: 为什么不能使用该方法? 问题答案: 被解析为浮点数,SyntaxError也被解析。 您可以评估 代替。

  • 问题内容: 不确定此问题是否特定于该语言以及如何在中实现。 问题答案: append是一种变异(破坏性)操作(它会在适当位置修改列表,而不是返回新列表)。进行无损等效的惯用方式append是 回答你的问题,我的猜测是,如果返回新修改的列表,用户可能会认为它是非破坏性的,即他们可能会编写如下代码 并期望成为

  • 我试图在我的Word文档中使用块,但我有一些问题。首先,当我在我的文档中声明一个块时,如果我不使用函数“cloneBlock”,结果会出现这样的情况: 也许我必须使用那个函数才能正常出现。但是我的主要问题是“删除块”不起作用。如果我不克隆块,生成的docx就会损坏。但是如果我克隆了这个块,函数“删除块”不会删除这个块,它会在我的最终docx文件中显示那个块内的信息。 这是我的代码: Docx模板:

  • 问题内容: 我的Dockerfile创建一个目录,将其chown,然后再列出该目录。该目录仍归root用户所有。这是为什么? 这是Dockerfile: 这是“ docker build”的输出: Docker版本1.2.0,构建fa7b24f 主机运行Ubuntu 12.04,但具有3.13.0-36通用内核。 问题答案: 回答我自己的问题:它声明为卷。如果取出VOLUME指令,则将生效。 此外

  • 问题内容: 我想在控制台中打印一些内容,以便对其进行调试。但是由于某种原因,我的Android应用程序中没有任何内容。 那我该如何调试呢? 问题答案: 在仿真器上,大多数设备都重定向到LogCat并使用进行打印。在非常旧的或自定义的Android版本上可能并非如此。 原版的: 没有控制台将消息发送到,因此消息丢失。当你使用来运行“传统” Java应用程序时,也会以同样的方式发生这种情况。 相反,你