Portál AbcLinuxu, 7. května 2025 14:36

Dotaz: Jak setřidit objekty v poli od nejnovějšího po nejstarší datum a čas v daném sloupci

20.2.2022 00:15 Kuba
Jak setřidit objekty v poli od nejnovějšího po nejstarší datum a čas v daném sloupci
Přečteno: 799×
Odpovědět | Admin
Ahoj, jak třídit objekty v poli? Potřebuji setřídit sloupec "one" ato od nejnovějšího datumu a času po nejstarší datum a čas.

Děkuji za pomoc. Jedná se o Python 3.x
[ 
{'one': '2022-02-19 23:18:59.464821', 'two': '1645309139.464821.png'}, 
{'one': '2022-02-19 19:38:41.508453', 'two': '1645295921.5084531.png'}, 
{'one': '2022-02-19 21:41:48.585115', 'two': '1645303308.585115.png'}, 
{'one': '2022-02-19 22:58:08.709951', 'two': '1645307888.709951.png'}, 
{'one': '2022-02-19 22:19:31.149130', 'two': '1645305571.1491299.png'}, 
{'one': '2022-02-19 22:14:27.674286', 'two': '1645305267.674286pngip'}
]

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Řešení 1× (jiwopene)
Jendа avatar 20.2.2022 07:40 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Jak setřidit objekty v poli od nejnovějšího po nejstarší datum a čas v daném sloupci
Odpovědět | | Sbalit | Link | Blokovat | Admin
https://stackoverflow.com/questions/62656633/lambda-function-for-sortkey-in-python
20.2.2022 13:44 Kuba
Rozbalit Rozbalit vše Re: Jak setřidit objekty v poli od nejnovějšího po nejstarší datum a čas v daném sloupci
Děkuji, to jsem nemohl vůbec najít.
20.2.2022 17:45 Olaf
Rozbalit Rozbalit vše Re: Jak setřidit objekty v poli od nejnovějšího po nejstarší datum a čas v daném sloupci
Odpovědět | | Sbalit | Link | Blokovat | Admin
Možná jdu s kanonem na vrabce, ale není vhodnější už pro práci s daty použít nástroj, který je pro práci s daty dělaný? Například Pandas. (Proměnná data je tvůj seznam slovníků.)
import pandas as pd

df = pd.DataFrame(data)
print(df)
A výstupem je
	                       one	                  two
0	2022-02-19 23:18:59.464821	1645309139.464821.png
1	2022-02-19 19:38:41.508453	1645295921.5084531.png
2	2022-02-19 21:41:48.585115	1645303308.585115.png
3	2022-02-19 22:58:08.709951	1645307888.709951.png
4	2022-02-19 22:19:31.149130	1645305571.1491299.png
5	2022-02-19 22:14:27.674286	1645305267.674286pngip
Seřadím podle času a přejmenuju slupce:
df.sort_values(by="one")
df.rename(columns={'one': 'Datum', 'two': 'Soubor'}, inplace=True)
Výsledek je:
	                    Datum	               Soubor
1	2022-02-19 19:38:41.508453	1645295921.5084531.png
2	2022-02-19 21:41:48.585115	1645303308.585115.png
5	2022-02-19 22:14:27.674286	1645305267.674286pngip
4	2022-02-19 22:19:31.149130	1645305571.1491299.png
3	2022-02-19 22:58:08.709951	1645307888.709951.png
0	2022-02-19 23:18:59.464821	1645309139.464821.png
20.2.2022 20:55 Olaf
Rozbalit Rozbalit vše Re: Jak setřidit objekty v poli od nejnovějšího po nejstarší datum a čas v daném sloupci
Jinak ještě poznámka. Když to chceš sestupně, uděláš to takto:
import pandas as pd

data = [{...}]
df = pd.DataFrame(data)

df.rename(columns={'one': 'Datum', 'two': 'Soubor'}, inplace=True)
df.sort_values(by="Datum", ascending=False, inplace=True)

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.