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

连接两个列表-'+ ='和extend()之间的区别

童宏富
2023-03-14
问题内容

我已经看到在Python中实际上有两种(也许更多)串联列表的方法:一种方法是使用extend()方法:

a = [1, 2]
b = [2, 3]
b.extend(a)

另一个使用plus(+)运算符:

b += a

现在,我想知道:这两个选项中的哪一个是列表连接的“
pythonic”方式,并且两者之间有区别(我查看了Python的官方教程,但找不到有关此主题的任何信息)。


问题答案:

在字节码级别上的唯一区别是,该.extend方式涉及函数调用,在Python中该函数比INPLACE_ADD。调用稍贵。

除非您要执行数十亿次此操作,否则实际上不必担心。但是,瓶颈可能在其他地方。



 类似资料:
  • 问题内容: 在Lodash库中,有人可以更好地解释合并和扩展/分配。 这是一个简单的问题,但答案仍然使我回避。 问题答案: 下面是如何/作品:对于源的每个属性,复制其价值,是到目的地。如果属性值本身是对象,则不会对其属性进行递归遍历。整个对象将从源中获取并设置到目标中。 下面是如何工作的:对于源的每个属性,检查如果该属性是对象本身。如果是,则递归关闭并尝试将子对象属性从源映射到目标。因此,实质上,

  • 问题内容: 我在尝试实现的算法周围束手无策。我有两个列表,希望从两个列表中进行特定组合。 这是一个例子。 在这种情况下,输出为: 我的名字可能比数字多,即。这是一个具有3个名称和2个数字的示例: 输出: 问题答案: 注意 :此答案是针对上面提出的特定问题的。如果您来自Google,只是想寻找一种使用Python获得笛卡尔积的方法,或者您可能正在寻找简单的列表理解方法- 请参见其他答案。 假设。然后

  • 问题内容: 我对这两种结构感到非常困惑。这两个表的优缺点是什么?哪一个更好,为什么? 表格1 表2 问题答案: 通常,第二个表在数据库设计的上下文中是 反模式的 。而且,它还有特定的名称: 实体属性值 (EAV)。在某些情况下,使用这种设计是有道理的,但是这种情况很少见,甚至可以避免。 为什么EAV不好 数据完整性支持 尽管事实是这样的结构似乎更加“灵活”或“先进”,但这种设计仍存在缺陷。 不可能

  • 问题内容: 具有两个不同的.tar.gz文件:第二个.tar.gz是第一个.tar.gz的子集。 我需要单行命令才能在第二个.tar.gz中找到丢失的文件。 例如: 1.tar.gz文件列表: 2.tar.gz文件列表: 输出应为: 问题答案: 只需列出内容并执行:

  • 本文向大家介绍Lodash库中.extend()/ .assign()和.merge()之间的区别。,包括了Lodash库中.extend()/ .assign()和.merge()之间的区别。的使用技巧和注意事项,需要的朋友参考一下 分配/扩展采用源中的每个属性,将其值原样复制到目标。如果属性值本身是对象,则不会对其属性进行递归遍历。这也称为浅复制/克隆。整个对象将从源中取出并放入目的地。 合并

  • 我想找到列表中任意2个值之间的最小距离。然而,考虑到顺时针和逆时针运动,我需要最小的距离。 例如,我有列表[0, 4, 5, 6, 3, 1]。说我想要一对之间的距离(4,1) 按“顺时针”移动,考虑到指数差异,结果明显为4。但是,如果一个人“逆时针”移动并认为列表已连接,那么0是1的邻居。距离是2,这是我想要的结果。 我该如何实现这一点? 我想加入名单。 [0, 4, 5, 6, 3, 1, 0