21 HAZİRAN 2011, Salı
Nasıl Python sıralanmış bir dizi endeksleri almak için
Sayısal bir listesi var:
myList = [1, 2, 3, 100, 5]
Şimdi eğer ben bu listeyi [1, 2, 3, 5, 100] elde etmek için sıralama.
İstediğim öğeleri endeksleri.
*5 yani sırayı özgün listesi*
--- ala C = tür döndüren bir işlev
deÄŸerleri ve endeksleri.
CEVAP
21 HAZİRAN 2011, Salı
Sonraki gibi bir ÅŸey:
>>> myList = [1, 2, 3, 100, 5]
>>> [i[0] for i in sorted(enumerate(myList), key=lambda x:x[1])]
[0, 1, 2, 4, 3]
enumerate(myList) listesi (indeks, değer) dizilerini içeren verir:
[(0, 1), (1, 2), (2, 3), (3, 100), (4, 5)]
sorted geçirmeden göre sıralamak ve sıralama anahtarı (her demet; lambda için. ikinci unsuru ayıklamak için bir işlev belirtme Son olarak, her biri özgün dizinsıralanmışöğe [i[0] for i in ...] liste anlayışı kullanarak elde edilir.
Bunu PaylaÅŸ:

Nasıl yüzer bir dizi arasında rastgele...
Nasıl Python ile şimdiki zaman almak i...
Nasıl Python ile bir mutlak dosya yolu...
Nasıl Python sistem hostname almak içi...
Python nasıl bir yol uzantısı olmadan ...