list.remove()问题。。。

  1. 10月前
    10月前京斯 重新编辑
    l=[0,1,2,3,4,5,6,7]
    for n in l:
        l.remove(n)
    print(l)
  2. 运行结果如下:
    /data/user/0/com.hipipal.qpy3/files/bin/qpython-android5.sh "/storage/emulated/0/qpython/.last_tmp.py" && exit
    lated/0/qpython/.last_tmp.py" && exit <
    [1, 3, 5, 7]

    #[QPython] Press enter to exit

  3. 为什么不是全部把list的内容删完呢?

  4. 我是大缺弦

    4楼 2018年4月5日 化学版主

    因为 for .. in 其实也是按照下标遍历的,你把

    for n in l:
      l.remove(n)

    改成

    for i in range(len(l)):
      l.remove(l[i])

    就能看出来为什么没有全删掉了


    这些问题都比较简单,我觉得楼主应该找一本好书看一看,推荐 python学习手册,看一天好书顶的上闷头试十天

  5. 天马行空

    5楼 2018年4月5日 数学版主

    ls说了..那就补个正确的..

    l=[0,1,2,3,4,5,6,7]
    for n in l[:]:
        l.remove(n)
    print(l)    # []
  6. @我是大缺弦

    因为 for .. in 其实也是按照下标遍历的,你把

    for n in l:
      l.remove(n)

    改成

    for i in range(len(l)):
      l.remove(l[i])

    就能看出来为什么没有全删掉了


    这些问题都比较简单,我觉得楼主应该找一本好书看一看,推荐 python学习手册,看一天好书顶的上闷头试十天

    就是相当于把n号位上元素删了,n后的元素都往前挪,指针继续指向的n+1位啊!

  7. @天马行空 ls说了..那就补个正确的..
    l=[0,1,2,3,4,5,6,7] for n in l[:]: l.remove(n) print(l) # []

    噫 这个可以

 

后才能发言