이것은 매우 이상한 데이터 세트 것 같아,하지만 당신이 정말로 다음이 필요합니까 가정 : 당신이 처음에 0
의를 제거하면
과 끝 다음은 정렬 할 매우 간단합니다 :
>>> l = ['entrya', 5, 'entryb', 10, 'anotherentry', 7, 'entry', 1, 'entryd', 30]
>>> [b for a in sorted(zip(*[iter(l)]*2), key=lambda x: x[1]) for b in a]
['entry', 1, 'entrya', 5, 'anotherentry', 7, 'entryb', 10, 'entryd', 30
다른 entries
에 대한 값으로 0
이 없다고 가정하면 2 가지 경우로 처리 할 수 있으며, 0이 아닌 모든 것을 두 개로 정렬 한 다음 모두 0을 다시 추가 할 수 있습니다.
>>> l = [0,0,0,0,0,'entrya',5, 'entryb', 10, 'anotherentry', 7, 'entry', 1, 'entryd', 30, 0,0,0,0,0]
>>> pairs = [b for a in sorted(zip(*[iter(filter(lambda x: x!=0, l))]*2), key=lambda x: x[1]) for b in a]
>>> zeros = list(filter(lambda x: x == 0, l))
>>> pairs + zeros
['entry', 1, 'entrya', 5, 'anotherentry', 7, 'entryb', 10, 'entryd', 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
다음 다음 목록을 평평하게, 튜플을 정렬 목록에서 튜플을 만들 수 있습니다. 하지만 시작과 끝에 아무런 연관성이 없으며 0.0 ... –
왜 'entrya', 5'가 결과에서 누락 되었습니까? – RomanPerekhrest
oops 정보를 잊어 버렸습니다. – Plinzelplein