Python论坛  - 讨论区

标题:[python-chinese] 如何去除列表中相同的元素

2007年02月03日 星期六 18:19

gashero harry.python在gmail.com
星期六 二月 3 18:19:16 HKT 2007

现在有个比较大的列表(list对象),其中有些元素是重复的,应该如何去除重复的元素呢?谢谢。

-- 
从前有一只很冷的毛毛虫,他想获得一点温暖。而获得温暖的机会只有从树上掉下来,落进别人的领口。
片刻的温暖,之后便失去生命。而很多同类却连这片刻的温暖都没有得到就..
我会得到温暖么?小心翼翼的尝试,却还是会受到伤害。
我愿为那一刻的温暖去拼,可是谁愿意接受?

欢迎访问偶的博客:
http://blog.csdn.net/gashero

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

2007年02月03日 星期六 18:27

limodou limodou在gmail.com
星期六 二月 3 18:27:55 HKT 2007

On 2/3/07, gashero <harry.python在gmail.com> wrote:
> 现在有个比较大的列表(list对象),其中有些元素是重复的,应该如何去除重复的元素呢?谢谢。
>
a = list(set(a))

-- 
I like python!
UliPad <>: http://wiki.woodpecker.org.cn/moin/UliPad
My Blog: http://www.donews.net/limodou

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

2007年02月03日 星期六 18:28

Dreamingk(天成) dreamingk在gmail.com
星期六 二月 3 18:28:27 HKT 2007

from sets import Set as set

l = [1,1,2,3]
l = list(set(l))
l = [1,2,3]

On 2/3/07, gashero <harry.python在gmail.com> wrote:
>
> 现在有个比较大的列表(list对象),其中有些元素是重复的,应该如何去除重复的元素呢?谢谢。
>
> --
> 从前有一只很冷的毛毛虫,他想获得一点温暖。而获得温暖的机会只有从树上掉下来,落进别人的领口。
> 片刻的温暖,之后便失去生命。而很多同类却连这片刻的温暖都没有得到就..
> 我会得到温暖么?小心翼翼的尝试,却还是会受到伤害。
> 我愿为那一刻的温暖去拼,可是谁愿意接受?
>
> 欢迎访问偶的博客:
> http://blog.csdn.net/gashero
> _______________________________________________
> python-chinese
> Post: send python-chinese在lists.python.cn
> Subscribe: send subscribe to python-chinese-request在lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request在lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese




-- 
Dreamingk (tc, 天成)
email:
    dreamingk在gmail.com
    tc在exoweb.net
website:
    http://www.exoweb.net
    http://python.cn
    http://django.cn
    http://zope.cn
Exoweb (北京轩辕互动科技有限公司)
  北京市朝阳区金台路甜水园东街2号
  甜水园商务中心A505  100026
Python, I love this language.
-------------- 下一部分 --------------
一个HTML附件被移除...
URL: http://python.cn/pipermail/python-chinese/attachments/20070203/8ae083bc/attachment.htm 

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

2007年02月03日 星期六 18:34

kakaryan kakaryan在gmail.com
星期六 二月 3 18:34:26 HKT 2007

把list的value放到dict里面作为key,value随便给个值,然后把所有的key就OK。

在 07-2-3,gashero<harry.python at gmail.com> 写道:
> 现在有个比较大的列表(list对象),其中有些元素是重复的,应该如何去除重复的元素呢?谢谢。
>
> --
> 从前有一只很冷的毛毛虫,他想获得一点温暖。而获得温暖的机会只有从树上掉下来,落进别人的领口。
> 片刻的温暖,之后便失去生命。而很多同类却连这片刻的温暖都没有得到就..
> 我会得到温暖么?小心翼翼的尝试,却还是会受到伤害。
> 我愿为那一刻的温暖去拼,可是谁愿意接受?
>
> 欢迎访问偶的博客:
> http://blog.csdn.net/gashero
> _______________________________________________
> 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

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

2007年02月03日 星期六 21:43

Julius F. Huang fozzold在gmail.com
星期六 二月 3 21:43:31 HKT 2007

l = [1,3,2,4,3,3,2,4]
s = [i for i in l if i not in locals()['_[1]']]

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

2007年02月03日 星期六 21:54

limodou limodou在gmail.com
星期六 二月 3 21:54:16 HKT 2007

On 2/3/07, Julius F. Huang <fozzold在gmail.com> wrote:
> l = [1,3,2,4,3,3,2,4]
> s = [i for i in l if i not in locals()['_[1]']]

我的感觉是使用set可能是最快的,不过没有测试过。不过在2.4中,set是使用c写的了,应该非常快。

-- 
I like python!
UliPad <>: http://wiki.woodpecker.org.cn/moin/UliPad
My Blog: http://www.donews.net/limodou

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

2007年02月03日 星期六 22:55

kakaryan kakaryan在gmail.com
星期六 二月 3 22:55:38 HKT 2007

下周一定要测试一下...

在 07-2-3,limodou<limodou at gmail.com> 写道:
> On 2/3/07, Julius F. Huang <fozzold at gmail.com> wrote:
> > l = [1,3,2,4,3,3,2,4]
> > s = [i for i in l if i not in locals()['_[1]']]
>
> 我的感觉是使用set可能是最快的,不过没有测试过。不过在2.4中,set是使用c写的了,应该非常快。
>
> --
> I like python!
> UliPad <>: http://wiki.woodpecker.org.cn/moin/UliPad
> My Blog: http://www.donews.net/limodou
> _______________________________________________
> 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

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

2007年02月04日 星期日 10:53

yi huang yi.codeplayer在gmail.com
星期日 二月 4 10:53:15 HKT 2007

In [1]: def testset(n):
   ...:     l = range(n)*2
   ...:     return list(set(l))
   ...:

In [5]: def testdict(n):
   ...:     l = range(n)*2
   ...:     result = {}
   ...:     [result.__setitem__(i, 1) for i in l]
   ...:     return result.keys()
   ...:

In [6]: testdict(10)
Out[6]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

In [7]: testset(10)
Out[7]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

In [8]: from timeit import Timer

In [9]: tdict = Timer('testdict(100000)', 'from __main__ import testdict')

In [10]: tset = Timer('testset(100000)', 'from __main__ import testset')

In [11]: tdict.timeit(1)
Out[11]: 0.35537421655545604

In [12]: tset.timeit(1)
Out[12]: 0.091743224348346253

In [13]: tdict.timeit(10)
Out[13]: 3.5437735801617265

In [14]: tset.timeit(10)
Out[14]: 0.96231364600808433

In [15]: def testdict2(n):
   ....:     l = range(n)*2
   ....:     result = {}
   ....:     [result.__setitem__(i,1) for i in l if not i in result]
   ....:     return result.keys()
   ....:

In [21]: testdict2(10)
Out[21]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

In [16]: tdict2 = Timer('testdict2(100000)', 'from __main__ import
testdict2')

In [17]: tdict2.timeit(1)
Out[17]: 0.22379073317978282

In [18]: tdict.timeit(1)
Out[18]: 0.33202068978039279

In [19]: tdict2.timeit(10)
Out[19]: 2.2887280366638549

In [20]: tdict.timeit(10)
Out[20]: 3.3217556980007146

set 显然比哈希快太多了,testdict2 又比 testdict 快一点点。
Julius F. Huang 的方案就不用比了,肯定是最慢的。

-- 
http://codeplayer.blogspot.com/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://python.cn/pipermail/python-chinese/attachments/20070204/40bfa7e4/attachment-0001.html 

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

2007年02月04日 星期日 10:57

3751 lwm3751在gmail.com
星期日 二月 4 10:57:31 HKT 2007

如果我每搞错set在2.4里面是用dict实现的,在2.5又重新实现了。
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://python.cn/pipermail/python-chinese/attachments/20070204/59d4f62c/attachment.html 

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

2007年02月04日 星期日 11:30

limodou limodou在gmail.com
星期日 二月 4 11:30:51 HKT 2007

On 2/4/07, 3751 <lwm3751在gmail.com> wrote:
> 如果我每搞错set在2.4里面是用dict实现的,在2.5又重新实现了。
>
不会吧。我记得2.3中有单独的模块,sets,到2.4中变成内置的了。而且改为c写的了。至于是不是dict实现的,不得而知。

-- 
I like python!
UliPad <>: http://wiki.woodpecker.org.cn/moin/UliPad
My Blog: http://www.donews.net/limodou

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

2007年02月04日 星期日 19:42

Julius F. Huang fozzold在gmail.com
星期日 二月 4 19:42:01 HKT 2007

我也试了, set不是一般的快啊, 至于我那个,嘿嘿,都慢的看不见了。
:)

>
> set 显然比哈希快太多了,testdict2 又比 testdict 快一点点。
> Julius F. Huang 的方案就不用比了,肯定是最慢的。
>

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

2007年02月05日 星期一 11:46

Brightman fenyon在126.com
星期一 二月 5 11:46:47 HKT 2007





Brightman
2007-02-05



·¢¼þÈË£º Julius F. Huang
·¢ËÍʱ¼ä£º 2007-02-03 21:43:37
ÊÕ¼þÈË£º python-chinese在lists.python.cn
³­ËÍ£º 
Ö÷Ì⣺ Re: [python-chinese]ÈçºÎÈ¥³ýÁбíÖÐÏàͬµÄÔªËØ

l = [1,3,2,4,3,3,2,4]
s = [i for i in l if i not in locals()['_[1]']]
                                Õâ¸öÊÇʲôÒâ˼£¿
_______________________________________________
python-chinese
Post: send python-chinese在lists.python.cn
Subscribe: send subscribe to python-chinese-request在lists.python.cn
Unsubscribe: send unsubscribe to  python-chinese-request在lists.python.cn
Detail Info: http://python.cn/mailman/listinfo/python-chinese
-------------- 下一部分 --------------
Ò»¸öHTML¸½¼þ±»ÒƳý...
URL: http://python.cn/pipermail/python-chinese/attachments/20070205/08ff8a6a/attachment.html 

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

2007年02月05日 星期一 14:22

yi huang yi.codeplayer在gmail.com
星期一 二月 5 14:22:44 HKT 2007

>
> l = [1,3,2,4,3,3,2,4]
>  s = [i for i in l if i not in locals()['_[1]']]
>                                 这个是什么意思?
>

这就是两个邮件列表的麻烦之处了,上面有人已经问过了,我复制下 tocer 的回复

  参考 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/204297


-- 
http://codeplayer.blogspot.com/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://python.cn/pipermail/python-chinese/attachments/20070205/efef63b6/attachment.html 

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

2007年02月06日 星期二 10:38

Julius F. Huang fozzold在gmail.com
星期二 二月 6 10:38:23 HKT 2007

对,我也是从aspn上看到的

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

2007年02月06日 星期二 10:54

Marco marco在waven.com
星期二 二月 6 10:54:15 HKT 2007

#!/usr/bin/python

a = [1,2,3,1,4,2]
b = []

print a

for i in a:
    if i in b:
        continue
    else:
        b.append(i)

print b

On 2/6/07, Julius F. Huang <fozzold在gmail.com> wrote:
> 对,我也是从aspn上看到的
> _______________________________________________
> python-chinese
> Post: send python-chinese在lists.python.cn
> Subscribe: send subscribe to python-chinese-request在lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request在lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese


-- 
LinuX Power

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

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

    你的回复:

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

    Zeuux © 2025

    京ICP备05028076号