拙梦 发表于 2023-9-27 10:38:23

报错代码

为什么这样子的代码会报错?
>>y=
>>y[::2]=[ ]

isdkz 发表于 2023-9-27 10:38:31

这段代码会报错,因为它试图用一个空列表来替换y中的每个第二个元素。在Python中,列表切片赋值操作的左侧必须是一个可变的序列对象,而空列表是不可变的。因此,可以使用以下代码来删除y中的每个第二个元素:

y[::2] = []


改为:

del y[::2]


这将使用切片来删除y中的每个第二个元素。

拙梦 发表于 2023-9-27 10:52:59

isdkz 发表于 2023-9-27 10:38
这段代码会报错,因为它试图用一个空列表来替换y中的每个第二个元素。在Python中,列表切片赋值操作的左侧 ...

那这样为什么不会报错呢?
>>y=
>>y=[]
>>y

smallwh 发表于 2023-9-28 18:23:09

拙梦 发表于 2023-9-27 10:52
那这样为什么不会报错呢?
>>y=
>>y=[]


python列表切片在指定步长(第二个冒号后的那个数)时,要求赋值的元素个数与想要替换的元素个数相同
不指定步长时,对元素个数没有要求
页: [1]
查看完整版本: 报错代码