Python列表切片练习没有意义

时间:2018-11-24 20:27:05

标签: python slice

我知道[start:end]表示第一个数字是切片在列表中的开始位置,最后一个数字是切片在列表中的结束位置(但在此示例中)

 U= [2, 'haha', [5,6,9], 3, 2, 1] ; 
 U[1:2]=[] ; 
 U[2:]=[] ;

结果切片为:

 U= [2, [5,6,9]]

为什么这是答案?我在第二步中得到3,2,1被淘汰。但是为什么生成的切片为[2,[5,6,9]]而不是[5,6,9]

2 个答案:

答案 0 :(得分:2)

Python列表切片可以由可迭代项替换。

您从此开始:

U = [2, 'haha', [5,6,9], 3, 2, 1] ; 

U[1:2]'haha'(从元素1开始直到但不包括2),因此将其替换为空的可迭代[]本质上从列表中删除了'haha'

到那时,您有[2, [5,6,9], 3, 2, 1]

U[2:]从元素索引2到结尾[3, 2, 1]。再次,和以前一样,将其设置为空的可迭代[],则删除这三个元素,剩下[2, [5,6,9]]

答案 1 :(得分:1)

使用python控制台可以使示例更易于理解:

Require Export Setoid.
Require Export Coq.Reals.Reals.
Require Export ArithRing.


Definition Point := Type.

Record MassPoint:Type:= cons{number : R ; point: Point}.

Variable add_MP : MassPoint -> MassPoint -> MassPoint . 

Variable mult_MP : R -> MassPoint -> MassPoint .

Variable orthogonalProjection : Point -> Point -> Point -> Point.

Definition isVector (v:MassPoint):= exists A, B :Point , v= add_MP((−1)A)(1B).

摆脱第二个元素。

>>> U = [2, 'haha', [5, 6, 9], 3, 2, 1]
>>> U
[2, 'haha', [5, 6, 9], 3, 2, 1]

摆脱第二个元素之后的所有事物。

>>> U[1:2]=[]
>>> U
[2, [5, 6, 9], 3, 2, 1]