Python论坛  - 讨论区

标题:[python-chinese] 在list中删除

2006年06月20日 星期二 16:18

Samuel samuel.net at gmail.com
Tue Jun 20 16:18:04 HKT 2006

正在看drive into python,python有这么一个不同的地方:
  如果在 list 中没有找到值, Python 会引发一个异常来响应 index 方法。

那么我要删除的话,有两种基本方法:
1 先用 in 判断,然后再删除
2 直接删除,并捕获异常

用方法1的话,效率上显然是划不来的
用方法2的话,感觉又有点不好

我倾向用1,这个损耗如果不是在循环中,基本可以忽略,而利用异常不是一个好的习惯。

想问大家都用哪种方法?

-- 
Regards, Samuel
http://www.SamuelChen.net

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年06月20日 星期二 16:20

Samuel samuel.net at gmail.com
Tue Jun 20 16:20:31 HKT 2006

再顺道问一下,书中提到了list有pop,但有没有push却没有提,有么?
如果没有的话,是不是就认为append替代了?因为list pop的是最后一个对象,而append正好是加到最后。

On 6/20/06, Samuel <samuel.net at gmail.com> wrote:
> 正在看drive into python,python有这么一个不同的地方:
>   如果在 list 中没有找到值, Python 会引发一个异常来响应 index 方法。
>
> 那么我要删除的话,有两种基本方法:
> 1 先用 in 判断,然后再删除
> 2 直接删除,并捕获异常
>
> 用方法1的话,效率上显然是划不来的
> 用方法2的话,感觉又有点不好
>
> 我倾向用1,这个损耗如果不是在循环中,基本可以忽略,而利用异常不是一个好的习惯。
>
> 想问大家都用哪种方法?
>
> --
> Regards, Samuel
> http://www.SamuelChen.net
>


-- 
Regards, Samuel
http://www.SamuelChen.net

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年06月20日 星期二 16:22

Samuel samuel.net at gmail.com
Tue Jun 20 16:22:57 HKT 2006

再顺道一下,subject中的[python-chinese]是自己加的还是服务器加的?

On 6/20/06, Samuel <samuel.net at gmail.com> wrote:
> 再顺道问一下,书中提到了list有pop,但有没有push却没有提,有么?
> 如果没有的话,是不是就认为append替代了?因为list pop的是最后一个对象,而append正好是加到最后。
>
> On 6/20/06, Samuel <samuel.net at gmail.com> wrote:
> > 正在看drive into python,python有这么一个不同的地方:
> >   如果在 list 中没有找到值, Python 会引发一个异常来响应 index 方法。
> >
> > 那么我要删除的话,有两种基本方法:
> > 1 先用 in 判断,然后再删除
> > 2 直接删除,并捕获异常
> >
> > 用方法1的话,效率上显然是划不来的
> > 用方法2的话,感觉又有点不好
> >
> > 我倾向用1,这个损耗如果不是在循环中,基本可以忽略,而利用异常不是一个好的习惯。
> >
> > 想问大家都用哪种方法?
> >
> > --
> > Regards, Samuel
> > http://www.SamuelChen.net
> >
>
>
> --
> Regards, Samuel
> http://www.SamuelChen.net
>


-- 
Regards, Samuel
http://www.SamuelChen.net

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年06月20日 星期二 16:25

yi huang yi.codeplayer at gmail.com
Tue Jun 20 16:25:24 HKT 2006

删除一个不存在的东西我觉得本来就应该是个异常。
不应该把它忽略掉

-- 
http://codeplayer.blogbus.com/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20060620/8afdd77b/attachment.htm

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年06月20日 星期二 16:25

yi huang yi.codeplayer at gmail.com
Tue Jun 20 16:25:53 HKT 2006

所以我偏向第二种。


-- 
http://codeplayer.blogbus.com/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20060620/cfb3b0ac/attachment.htm

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年06月20日 星期二 16:31

Ocean Chen chocean at gmail.com
Tue Jun 20 16:31:52 HKT 2006

既然append跟push功能一样,还要push做什么

2006/6/20, Samuel <samuel.net at gmail.com>:
>
> 再顺道问一下,书中提到了list有pop,但有没有push却没有提,有么?
> 如果没有的话,是不是就认为append替代了?因为list pop的是最后一个对象,而append正好是加到最后。
>
> On 6/20/06, Samuel <samuel.net at gmail.com> wrote:
> > 正在看drive into python,python有这么一个不同的地方:
> >   如果在 list 中没有找到值, Python 会引发一个异常来响应 index 方法。
> >
> > 那么我要删除的话,有两种基本方法:
> > 1 先用 in 判断,然后再删除
> > 2 直接删除,并捕获异常
> >
> > 用方法1的话,效率上显然是划不来的
> > 用方法2的话,感觉又有点不好
> >
> > 我倾向用1,这个损耗如果不是在循环中,基本可以忽略,而利用异常不是一个好的习惯。
> >
> > 想问大家都用哪种方法?
> >
> > --
> > Regards, Samuel
> > http://www.SamuelChen.net
> >
>
>
> --
> Regards, Samuel
> http://www.SamuelChen.net
>
> _______________________________________________
> python-chinese
> Post: send python-chinese at lists.python.cn
> Subscribe: send subscribe to python-chinese-request at lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request at lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese
>
>


-- 
Ocean
mail: chocean at gmail.com
homepage: www.oceanisland.com.cn
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20060620/f78343f5/attachment.html

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年06月20日 星期二 16:45

swordsp sparas2006 at gmail.com
Tue Jun 20 16:45:16 HKT 2006

Knuth说过,预优化是万恶之源。
除非确定了真正的效率瓶颈,否则任何牺牲可读性和代码风格的"优化"我认为都是不可接受的。

On 6/20/06, Samuel <samuel.net at gmail.com> wrote:
>
> 正在看drive into python,python有这么一个不同的地方:
>   如果在 list 中没有找到值, Python 会引发一个异常来响应 index 方法。
>
> 那么我要删除的话,有两种基本方法:
> 1 先用 in 判断,然后再删除
> 2 直接删除,并捕获异常
>
> 用方法1的话,效率上显然是划不来的
> 用方法2的话,感觉又有点不好
>
> 我倾向用1,这个损耗如果不是在循环中,基本可以忽略,而利用异常不是一个好的习惯。
>
> 想问大家都用哪种方法?
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20060620/02d6712d/attachment.htm

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年06月20日 星期二 16:49

swordsp sparas2006 at gmail.com
Tue Jun 20 16:49:23 HKT 2006

是后者。
发信或者回信的时候都不必特意修改标题。

On 6/20/06, Samuel <samuel.net at gmail.com> wrote:
>
> 再顺道一下,subject中的[python-chinese]是自己加的还是服务器加的?
>
> On 6/20/06, Samuel <samuel.net at gmail.com> wrote:
> > 再顺道问一下,书中提到了list有pop,但有没有push却没有提,有么?
> > 如果没有的话,是不是就认为append替代了?因为list pop的是最后一个对象,而append正好是加到最后。
> >
> > On 6/20/06, Samuel <samuel.net at gmail.com> wrote:
> > > 正在看drive into python,python有这么一个不同的地方:
> > >   如果在 list 中没有找到值, Python 会引发一个异常来响应 index 方法。
> > >
> > > 那么我要删除的话,有两种基本方法:
> > > 1 先用 in 判断,然后再删除
> > > 2 直接删除,并捕获异常
> > >
> > > 用方法1的话,效率上显然是划不来的
> > > 用方法2的话,感觉又有点不好
> > >
> > > 我倾向用1,这个损耗如果不是在循环中,基本可以忽略,而利用异常不是一个好的习惯。
> > >
> > > 想问大家都用哪种方法?
> > >
> > > --
> > > Regards, Samuel
> > > http://www.SamuelChen.net
> > >
> >
> >
> > --
> > Regards, Samuel
> > http://www.SamuelChen.net
> >
>
>
> --
> Regards, Samuel
> http://www.SamuelChen.net
>
> _______________________________________________
> python-chinese
> Post: send python-chinese at lists.python.cn
> Subscribe: send subscribe to python-chinese-request at lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request at lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20060620/f805ae16/attachment.html

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年06月20日 星期二 16:59

swordsp sparas2006 at gmail.com
Tue Jun 20 16:59:41 HKT 2006

我觉得这取决于上下文。
如果相关的程序逻辑隐含了"正常情况下,list中应该有这个元素"这样一个语义,那才是应该用异常处理的情况。
如果存在或者不存在都只是可能的分支流程,那么应该相应的用if语句来控制这个流程。
其实大多数时候还是后者吧。

On 6/20/06, yi huang <yi.codeplayer at gmail.com> wrote:
>
> 删除一个不存在的东西我觉得本来就应该是个异常。
> 不应该把它忽略掉
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20060620/163721f8/attachment.htm

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2025

    京ICP备05028076号