>>> b=[('spam',0), ('eggs',1)]
>>> [reversed(x) for x in b]
[<reversed object at 0x7fbf07de7090>, <reversed object at 0x7fbf07de70d0>]
无赖。我希望得到一个反转元组列表!
当然可以做到:
>>> [tuple(reversed(x)) for x in b]
[(0, 'spam'), (1, 'eggs')]
但我希望通用的东西?当被移交给元组列表时,返回一个反转元组列表,当移交列表列表时,返回一个反转列表列表。
当然,isinstance()的丑陋黑客总是可以使用,但我希望避免走那条路。
答案 0 :(得分:8)
[x[::-1] for x in b]
答案 1 :(得分:0)
如果您只需要一个深度,请尝试[x [:: - 1]为m in mylist]。否则只需要创建一个像
这样的递归函数import collections
def recursive_reversed(seq):
if isinstance(seq, collections.Sequence):
return [recursive_reversed(x) for x in reversed(seq)]
return seq
该函数实际上将所有序列转换为列表,但我希望你得到要点。