2005年12月06日 星期二 19:28
各位好, 一个list,如果要去除所有包含有特定值的元素。为什么下面的代码出现问题?请给解释一下,另外,如果要完成这个功能请给出一个最常用的方法,谢谢。如果是用pop,会提示出现list越界的错误。必须要用一个新的list么?谢谢。 ll = [2,2,2,3,4,5,2,6,9,9,5,5,5,5,5] for x in ll: print x if x == 2: ll.remove(x) print ll 输出结果是: ----------python ---------- 2 [2, 2, 3, 4, 5, 2, 6, 9, 9, 5, 5, 5, 5, 5] 2 [2, 3, 4, 5, 2, 6, 9, 9, 5, 5, 5, 5, 5] 4 5 2 [3, 4, 5, 2, 6, 9, 9, 5, 5, 5, 5, 5] 9 9 5 5 5 5 5 输出完成 (耗时 0 秒) - 正常终止 -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20051206/5e3643b1/attachment.html
2005年12月06日 星期二 19:34
On 12/6/05, Li Weigang <dimens at gmail.com> wrote: > 各位好, > > 一个list,如果要去除所有包含有特定值的元素。为什么下面的代码出现问题?请给解释一下,另外,如果要完成这个功能请给出一个最常用的方法,谢谢。如果是用pop,会提示出现list越界的错误。必须要用一个新的list么?谢谢。 >>> ll = [2,2,2,3,4,5,2,6,9,9,5,5,5,5,5] >>> [x for x in ll if x!=2] [3, 4, 5, 6, 9, 9, 5, 5, 5, 5, 5] >>> -- Best Regards, Leo Jay
2005年12月06日 星期二 19:37
ll = [2, 2, 3, 4, 5, 2, 6, 9, 9, 5, 5, 5, 5, 5] for i in range(ll.count(2)): ll.remove(2) print ll -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20051206/5327072b/attachment.htm
2005年12月06日 星期二 19:50
在 05-12-6,Li Weigang<dimens at gmail.com> 写道: > 各位好, > > 一个list,如果要去除所有包含有特定值的元素。为什么下面的代码出现问题?请给解释一下,另外,如果要完成这个功能请给出一个最常用的方法,谢谢。如果是用pop,会提示出现list越界的错误。必须要用一个新的list么?谢谢。 > > ll = [2,2,2,3,4,5,2,6,9,9,5,5,5,5,5] > for x in ll: > print x > if x == 2: > ll.remove(x) > print ll > 这个程序之所以有错是因为你在对ll遍历时却同时修改了它的内容。因此创建一个复本ll是比较好的方式。 实现你的功能 Leo Jay 的方法挺好。 -- I like python! My Blog: http://www.donews.net/limodou NewEdit Maillist: http://groups.google.com/group/NewEdit
Zeuux © 2025
京ICP备05028076号