什么意思?

我在分析一些 Python 代码,我不知道是什么

pop = population[:]

它是类似于 Java 中的数组列表还是类似于二维数组?

100654 次浏览

它是一个从序列开始到结束的 切片,通常产生一个浅拷贝。

(好吧,这是 不止如此,但你还不需要关心。)

这是一个片符号的示例,它的作用取决于 population的类型。如果 population是一个列表,这一行将创建该列表的 肤浅的复制品。对于类型为 tuplestr的对象,它将什么也不做(如果没有 [:],该行也将做同样的事情) ,对于(比如说) NumPy 数组,它将为相同的数据创建一个新视图。

它创建列表的副本,而不是仅仅为已存在的列表分配新名称。

了解一个列表切片通常会复制列表的一部分也会有所帮助。例如,population[2:4]将返回一个包含填充[2]和填充[3]的列表(切片是右排他的)。去掉左右索引,就像在 population[:]中一样,它们分别默认为0和长度(总体) ,从而选择整个列表。因此,这是一个常见的习惯用法,使一个列表的副本。

呃... 这要看具体情况。最终,它将一个 slice对象(slice(None,None,None))传递给以下方法之一: __getitem____setitem__slice(None,None,None)0。(实际上,如果对象有一个 slice(None,None,None)1,那么将使用它来代替 __getitem__,但是现在不推荐使用它,不应该使用它)。

对象可以对切片执行它们想要的操作。

在下列情况下:

x = obj[:]

这将使用传入的切片对象调用 obj.__getitem__。实际上,这完全等效于:

x = obj[slice(None,None,None)]

(尽管前者可能更有效,因为它不需要查找 slice构造函数——它都是用字节码完成的)。

对于大多数对象,这是创建序列的一部分的浅拷贝的一种方法。

下一步:

x[:] = obj

Is a way to set the items (it calls __setitem__) based on obj.

而且,我想你可能会猜到:

del x[:]

电话; ——。

你也可以传递不同的切片:

x[1:4]

构造 slice(1,4,None)

x[::-1]

构造 slice(None,None,-1)等等。进一步阅读: 解释 Python 的片符号

[:]
用于限制或切片数组,散列
例如:
[1:5]用于显示1到5之间的值,即1-4
[开始: 结束]

基本上用于数组的切片,理解括号接受变量的平均值或关键字显示,和“ :”是用来限制或切片整个数组成数据包。