假設S是一個迭代器,其中每個子元素不一定是排序的。通常,我可能會做如何通過Python中的已排序迭代進行迭代
for element in S:
element=sorted(element)
...
有沒有辦法做這樣的事情
for sorted(element) in S:
...
假設S是一個迭代器,其中每個子元素不一定是排序的。通常,我可能會做如何通過Python中的已排序迭代進行迭代
for element in S:
element=sorted(element)
...
有沒有辦法做這樣的事情
for sorted(element) in S:
...
可以使用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...
我認爲這是最好的選擇,但問題中的明確版本可能更加清晰。我唯一的建議是通過在聲明的不同部分不重複使用同一個名稱'element'來避免混淆。 – Blckknght 2013-03-12 01:14:36
如果你試圖返回一個列表,你可以做一個列表理解
[sorted(element) for element in S]
所以...你有什麼問題嗎? – xxmbabanexx 2013-03-12 01:10:01
你有沒有試過自己的代碼? – 2013-03-12 01:13:03