SORU
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ş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • DRDAnimation

    DRDAnimation

    28 EYLÜL 2012
  • Jay Will

    Jay Will

    19 NİSAN 2006
  • NicoleGrippo

    NicoleGrippo

    14 Kasım 2006