倒序的话 怎么更方便点?
for i in reversed(somelist):
print i
--
I like python!
UliPad <<The Python Editor>>: http://code.google.com/p/ulipad/
UliWeb <<simple web framework>>: http://uliwebproject.appspot.com
My Blog: (new)http://http://hi.baidu.com/limodou
(old)http://www.donews.net/limodou
2009/2/3 nillfeng <fengs...@hotmail.com>:
2009/2/3 vicalloy <zbi...@gmail.com>:
--
Any complex technology which doesn't come with documentation must be the best
available.
2009/2/3 xxmplus <xxm...@gmail.com>:
或者这个函数只是 倒序遍历的迭代器, 并不反转这个list
On 2月3日, 下午3时29分, limodou <limo...@gmail.com> wrote:
> 2009/2/3 nillfeng <fengshi...@hotmail.com>:
只是产生一个iterator
2009/2/3 nillfeng <fengs...@hotmail.com>:
2009/2/3 Albert Lee <hanzh...@gmail.com>:
发现这个就不输出了
On 2月3日, 下午4时00分, vicalloy <zbir...@gmail.com> wrote:
> 应当不只,如果没有复制,那lst改变后reversed后的也应当变才对。
> 不过也没有性能问题还是做个测试最清楚,比猜靠谱多了。
> lst = [1,2,'a']
> ss = reversed(lst)
> lst.append('ok')
> for s in ss:
> print s
>
> 2009/2/3 Albert Lee <hanzhup...@gmail.com>:
a
2
b
如果改变了现有元素的值,会打印新的。说明,迭代器记录的是一个索引位置,迭代器生成时指向第3个元素,后面不管append几个元素,在使用迭代器时,都是
3,2,1 的顺序输出列表元素。 因此,append不会影响。
2009/2/3 nillfeng <fengs...@hotmail.com>:
nillfeng 写道:
迭代器的内部工作机理是通过index的,因此一旦需要从列表中删除数据,最好
是通过filter函数,如果自己去循环就出错了。
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iEYEARECAAYFAkmIBnMACgkQxx/N+qwtsRaIXgCfYHyc806CJ6uIPF/QDHh1wown
s8UAnjlatUH2GyiuDtt3knDCau8e9Bpo
=sVzO
-----END PGP SIGNATURE-----
看习惯了,删除还是直接删好,filter 会生成新的对象,不过更函数式一些。前面的迭代子还是现用现生成好,不然中间对象被改变了,结果就不可预料了。
Albert Lee 写道:
我说的是删除多个数据,这时候你不能循环,因为一旦删除,循环条件就被破坏了。
最明显的例子是从[1, 0, 0, 2, 4]中循环删除所有0。此时会漏掉一个。
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iEYEARECAAYFAkmIa+UACgkQxx/N+qwtsRbyZgCggrjwBkT9GNXtGeHmZl5rfa2S
HZkAnjztVhjqpwNohAdyvd3cm8uPHGZl
=40m3
-----END PGP SIGNATURE-----