The Hoff Skrevet 10. oktober 2007 Del Skrevet 10. oktober 2007 Hei Skal sortere en liste som inneholder sublister. Det skal sorteres på lengden av sublistene, dvs. at listen [[1,2,3],[4,5],[1]] skal bli til [[1],[4,5],[1,2,3]]. Det skal helst være en effektiv sortering. Noen som har tid til å hjelpe? Lenke til kommentar
zeitgeist Skrevet 10. oktober 2007 Del Skrevet 10. oktober 2007 Dette ser ut til å funke. Har ikke tid til å måle effektivitet. Hvis jeg skjønner deg rett skal rekkefølgen i sublistene forbli urørt(?) alist = [[1,2,3],[6,5,3,2], [4,5,3], [1], [6,1]] print sorted(alist, key=lambda s: len(s)) Lenke til kommentar
FraXinuS Skrevet 10. oktober 2007 Del Skrevet 10. oktober 2007 Kan også gjøre det slik: alist.sort(key=len) Lenke til kommentar
genstian Skrevet 10. oktober 2007 Del Skrevet 10. oktober 2007 Mitt script: def sort(list, do=False): nlen = {} i = 0 for x in list: if not len(list[x]) in nlen: nlen[len(list[x])] = {} nlen[len(list[x])][x] = list[x] if do: plist = {} for x in nlen: for y in nlen[x]: plist[y] = nlen[x][y] else: plist = nlen return plist a = {} a['b'] = ['a', 'b', 'c'] a['c'] =['d', 'e'] a['a'] = ['f'] print sort(a) Ble aldri ferdig med det, så do=True virker ikke. Lenke til kommentar
JohndoeMAKT Skrevet 16. oktober 2007 Del Skrevet 16. oktober 2007 Stenges grunnet brudd på tre-ords-regelen. Lenke til kommentar
Anbefalte innlegg