Discuss / Python / 为什么我这种不行

为什么我这种不行

Topic source

于露yulu

#1 Created at ... [Delete] [Delete and Lock User]
L=list(range(1,100,2))
while L[-1]<50:
    L=L.pop()
print(L)

colourcenter

#2 Created at ... [Delete] [Delete and Lock User]

L=list(range(1,100,2)) while L[-1]>50: L.pop() print(L)

于露yulu

#3 Created at ... [Delete] [Delete and Lock User]

为什么第三行不能写成L=L.pop()???

因为L.pop()是删除的项 当while成立 L=L.pop()一直循环赋值 最后打印出来的L 是删除的最后一项

不太明白,L[-1] 这个是什么意思?

l[-1]表示列表最后一个元素,l[-2]表示倒数第二个,依次类推。。。

弦小零

#7 Created at ... [Delete] [Delete and Lock User]

这段代码有两处问题:

  1. L[-1] = 99 是一个固定的值,所以循环没有意义(永远不会满足 <50 的条件)。
  2. L=L.pop() # pop() 返回的是列表末尾的元素,此时L中元素都是整数,所以相当于把一个整数赋值给了L。当再次L[-1] < 50 判定时就会TypeError: 'int' object is not subscriptable(无下标可使用)

  • 1

Reply