2011-01-13 38 views
4
>>> b=[('spam',0), ('eggs',1)] 
>>> [reversed(x) for x in b] 
[<reversed object at 0x7fbf07de7090>, <reversed object at 0x7fbf07de70d0>] 

无赖。我期望得到反转元组列表!Python中列表项的一般反转

当然,我可以这样做:

>>> [tuple(reversed(x)) for x in b] 
[(0, 'spam'), (1, 'eggs')] 

但我希望的东西一般?当传递一个元组列表的时候,会返回一个反转元组列表,当移交一个列表列表时,返回一个反向列表列表。

当然,isinstance()的一个丑陋的黑客总是可用,但我希望避免去那条路线。

回答

0

如果您只需要一个深度,请在mylist中为x尝试[x [:: - 1]]。否则,只是做一个递归函数像

import collections 
def recursive_reversed(seq): 
    if isinstance(seq, collections.Sequence): 
     return [recursive_reversed(x) for x in reversed(seq)] 
    return seq 

这个函数实际上将所有的序列名单,但你的要点,我希望。