Jak seřadit seznam v Pythonu

PY

Jak seřadit seznam v Pythonu
« kdy: 22. 06. 2015, 10:10:48 »
Ahoj. V Pythonu začínám a nemůžu přijít na to, jak pomocí BASIC COMMAND setřídit seznam podle čísel, které jsou před tečkou. Co je za tečkou nebrat v potas.

Mám takový seznam
['5.fsdf s564f s', '1.dds45f4 s65d4f 65s', '2.564', '4.564654', '3.654564f sdf']

Potřebují opravit seznam aby byl takto seřazen
['1.dds45f4 s65d4f 65s', '2.564', '3.654564f sdf', '4.564654',  '5.fsdf s564f s']
Poradí někdo znalý ? Děkuji


me vakérav

Re:Jak seřadit seznam v Pythonu
« Odpověď #1 kdy: 22. 06. 2015, 10:33:32 »
Kód: [Vybrat]
seznam.sort(key=lambda value: int(value.split(".", 1)[0]))

PY

Re:Jak seřadit seznam v Pythonu
« Odpověď #2 kdy: 23. 06. 2015, 00:08:00 »
Strašně moc děkuji za velkou pomoc. Ještě když jsme u té tečky, můžu jednoduše prosím načíst celý řetězec uložený v nějaké proměnné od první tečky když neznám počet znaků před tečkou ? Nebo to musím rozdělit do pole, smazat potřebné a zase spojit ? Děkuji

hu

Re:Jak seřadit seznam v Pythonu
« Odpověď #3 kdy: 23. 06. 2015, 00:16:48 »
Strašně moc děkuji za velkou pomoc. Ještě když jsme u té tečky, můžu jednoduše prosím načíst celý řetězec uložený v nějaké proměnné od první tečky když neznám počet znaků před tečkou ? Nebo to musím rozdělit do pole, smazat potřebné a zase spojit ? Děkuji

Já bych zkusil víc mezer za ternárním operátorem, jsem tuhle slyšel, že to léči aji reuma.

me vakérav

Re:Jak seřadit seznam v Pythonu
« Odpověď #4 kdy: 23. 06. 2015, 00:35:43 »
Strašně moc děkuji za velkou pomoc. Ještě když jsme u té tečky, můžu jednoduše prosím načíst celý řetězec uložený v nějaké proměnné od první tečky když neznám počet znaků před tečkou ? Nebo to musím rozdělit do pole, smazat potřebné a zase spojit ? Děkuji

Udělal bych to podobně jako předešlé:
Kód: [Vybrat]
od_prvni_tecky = retezec.split(".", 1)[1]


dn

Re:Jak seřadit seznam v Pythonu
« Odpověď #5 kdy: 23. 06. 2015, 17:51:05 »
V Python 3 mi funguje pouhe sort().

@me vakérav
Co pridava ta lambda funkce?

me vakérav

Re:Jak seřadit seznam v Pythonu
« Odpověď #6 kdy: 23. 06. 2015, 18:08:31 »
V Python 3 mi funguje pouhe sort().

@me vakérav
Co pridava ta lambda funkce?

Seřadí to podle čísel, ne podle řetězců. U zmíněného příkladu je to jedno, ale třeba 10 by sort() bez té lambda funkce zařadil mezi 1 a 2.

hmmm

Re:Jak seřadit seznam v Pythonu
« Odpověď #7 kdy: 23. 06. 2015, 21:50:55 »
V Python 3 mi funguje pouhe sort().

@me vakérav
Co pridava ta lambda funkce?

Mozes si to predstavit ako, ze nad danym zaznamom sa vykonava dodatocna operacia. Na zaklade vysledku tej operacii to bude sortovat.

V skratke, prechadzas listom a nad kazdym elementom vykonas tu funkciu a na zaklade vysledku sortnes.

V tomto pripade, rozdelis element - bodka rozdeluje element. a ta 1 v parametri funkcie hovori, ze ak by si tam mal viac moznosti na rozdelenie (viackrat je tam "."), tak sa sa to spravi iba raz (ignoruje dalsie delenie). Split ti vrati list, preto je tam
  • .



hmmm

Re:Jak seřadit seznam v Pythonu
« Odpověď #8 kdy: 23. 06. 2015, 22:14:02 »
V Python 3 mi funguje pouhe sort().

@me vakérav
Co pridava ta lambda funkce?

Mozes si to predstavit ako, ze nad danym zaznamom sa vykonava dodatocna operacia. Na zaklade vysledku tej operacii to bude sortovat.

V skratke, prechadzas listom a nad kazdym elementom vykonas tu funkciu a na zaklade vysledku sortnes.

V tomto pripade, rozdelis element - bodka rozdeluje element. a ta 1 v parametri funkcie hovori, ze ak by si tam mal viac moznosti na rozdelenie (viackrat je tam "."), tak sa sa to spravi iba raz (ignoruje dalsie delenie). Split ti vrati list, preto je tam
  • .
Split ti vrati list, preto je tam [ 0 ]. (neviem kde sa tu escapuje)