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

Python LIST函数未返回新列表

龙永逸
2023-03-14
问题内容

考虑到内置的Python List方法,我遇到了问题。

在学习Python的过程中,我一直认为Python变量(就像任何值类变量一样)会返回它创建的新变量。

举个例子:

a = range(5)
# will give [0, 1, 2, 3, 4]
b = a.remove(1)
# as I learned it, b should now be [0, 2, 3, 4]
# what actually happens:
# a = [0, 2, 3, 4]
# b = None

此列表更改器不返回新列表的主要问题是您随后无法再进行多个更改。假设我想要一个从0到5的列表,而没有2和3。突变体返回新变量应该能够做到这一点:

a = range(5).remove(2).remove(3)

令人遗憾的是,这不可能range(5).remove(2) = None

现在,有没有一种方法可以像我在示例中一样在列表上进行多个变异?我认为甚至PHP都允许使用String进行这些类型的后续突变。

我也找不到所有内置Python函数的良好参考。如果有人可以找到所有列表mutator方法的实际定义(带有返回值),请告诉我。我只能找到以下页面:http
:
//docs.python.org/tutorial/datastructures.html


问题答案:

而不是 两个 变异和返回对象,Python库选择只有一个使用赋值函数的结果的方式。来自import this

应该有一种-最好只有一种-显而易见的方法。

话虽如此,您想要做的更常用的Python样式是使用 列表推导生成器表达式

[x for x in range(5) if x != 2 and x != 3]

您还可以将这些链接在一起:

>>> [x for x in (x for x in range(5) if x != 2) if x != 3]
[0, 1, 4]

上面的生成器表达式还有一个优势,它可以在 O(n)的 时间内运行,因为Python仅range()一次迭代一次。对于大型生成器表达式,甚至对于
无限 生成器表达式,这都是有利的。



 类似资料:
  • 我有一个dataframe,我想在其上使用apply函数根据现有数据生成两个新列。我收到此错误: 启动DF: 希望DF:

  • 下面是一个提供两列结果的函数。 在这个函数中,有一个用于返回结果。 功能: 有没有可能不使用循环就返回行? 如果是这样的话,请与我分享我们如何做到这一点。 我是否能够编写一个函数,在不使用循环的情况下将记录插入到表中? 帮我解决这个问题。 提前谢谢。

  • 问题内容: 我有一个计算税金的函数。 我不明白为什么它不能停止递归。 问题答案: 在您的职能部门中: 您没有从函数或设置中返回值。当您不返回任何内容时,返回值为。 也许,您想要这样:

  • 问题内容: 随着框架的发展,我决定将其拆分为文件,而不是将其保留在主设计文件中。但是,这样做不会返回任何值。 数据不为空-如果我警告js文件中的值,它们在那里! 功能: 1 .js文件中的功能(在执行之前包含) 因此,这是执行部分: 而且测试是空的…我已经尝试过不同的编写方式,但是我想我误解了js的可能性吗? 问题答案: 您不能这样做:由于调用是异步的,因此get_data函数无法返回ajax调用

  • 我真的需要温习一下我的异步等待和promise。我想要一些建议。 我正在对firebase firestore进行异步函数调用。函数应根据单个输入参数返回字符串。 该功能适用于1-1用户聊天。该功能是创建聊天/查找现有聊天,并返回其ID。 现在,我得到的作为返回值的和不知道为什么。除了返回之外,该函数还能正常工作。 我有两个功能。一个是React类组件生命周期方法,另一个是我的firebase异步