如何在Python中迭代已排序的iterable

时间:2013-03-12 01:07:47

标签: python

假设S是一个可迭代的,其中每个子元素不一定是排序的。通常我可以做

for element in S:
    element=sorted(element)
    ...

有没有办法做类似

的事情
for sorted(element) in S:
    ...

2 个答案:

答案 0 :(得分:5)

您可以使用genexp,但您的原始代码已经足够好了:

for element in (sorted(x) for x in S):
   # do things

另一种使用较少代码的方法是map

for element in map(sorted, S):
    # or itertools.imap on Python2.x if you need iterators...

答案 1 :(得分:1)

如果您要返回列表,则可以执行列表推导

[sorted(element) for element in S]