这是什么意思?

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

pop = population[:] 

手段。 是像Java中的数组列表或二维数组? 可以欣赏一些帮助,谢谢。

这是一个切片,它取决于population的types。 如果population是一个列表,这一行将创build一个列表的副本。 对于一个types为tuplestr的对象来说,它什么也不做(这个命令行会在没有[:]情况下执行相同的操作),对于一个(比如说)NumPy数组,它会为同一个数据创build一个新的视图。

这也可能有助于了解一个列表片通常是列表的一部分的副本。 例如population[2:4]将返回包含人口[2]和人口[3]的列表(切片是正确的排他性的)。 离开左右索引,如在population[:]分别默认为0和长度(人口),从而select整个列表。 因此,这是制作一份清单副本的常见习惯用语。

呃…这真的取决于上下文。 最终,它将slice对象( slice(None,None,None) )传递给以下方法之一: __getitem____setitem____delitem__ 。 (实际上,如果对象有一个__getslice__ ,将被用来代替__getitem__ ,但是现在已经被弃用了,不应该被使用)。

对象可以做他们想要的切片。

在以下方面:

 x = obj[:] 

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

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

(尽pipe前者可能更有效率,因为它不必查找slice构造函数 – 这一切都是在字节码中完成的)。

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

下一个:

 x[:] = obj 

是一种设置基于obj的项目(它调用__setitem__ )的方法。

而且,我想你大概可以猜到:

 del x[:] 

来电;-)。

你也可以通过不同的切片:

 x[1:4] 

构造slice(1,4,None)

 x[::-1] 

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

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

(呃, 不止这些 ,但你不需要关心。)

它创build列表的一个副本,而不仅仅是为已经存在的列表分配一个新的名字。

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

基本上用于数组切片,理解括号接受variables的平均值或键显示,“:”用于限制或切片整个数组。