我有一个问题,按日期排序我的名单。
这里是代码。
a = ['28/09 Fenerbahçe Başakşehir FK : 3.0 Normal', '29/09 Samsunspor Gaziantep FK : 2.25 Normal', '30/09 Sivasspor Hatayspor : 2.33 Normal', '30/09 İstanbulspor Antalyaspor : 2.17 Alt Degerli', '30/09 Trabzonspor Pendikspor : 2.67 Normal', '30/09 Galatasaray MKE Ankaragücü : 3.8 Normal', '01/10 Fatih Karagümrük Kasımpaşa : 1.8 Alt Degerli', '01/10 Fenerbahçe Çaykur Rizespor : 3.8 Normal', '01/10 Adana Demirspor Alanyaspor : 2.8 Normal', '01/10 Konyaspor Beşiktaş : 2.83 Normal', '29/09 Hoffenheim Borussia Dortmund : 3.75 Normal', '30/09 Bochum Mönchengladbach : 4.5 Normal', '30/09 Heidenheim Union Berlin : 4.75 Normal', '30/09 Köln Stuttgart : 4.25 Normal', '30/09 Mainz 05 Bayer Leverkusen : 3.25 Normal', '30/09 Wolfsburg Eintracht Frankfurt : 2.25 Alt Degerli', '30/09 RB Leipzig Bayern Münih : 4.0 Normal', '01/10 Darmstadt 98 Werder Bremen : 4.5 Normal', '01/10 Freiburg Augsburg : 3.5 Normal', '28/09 Frosinone Fiorentina : 4.0 Normal', '28/09 Monza Bologna : 1.5 Normal', '28/09 Genoa Roma : 3.5 UST Degerli', '30/09 Lecce Napoli : 2.33 Normal', '30/09 Milan Lazio : 3.2 UST Degerli', '30/09 Salernitana Inter : 2.0 Alt Degerli', '01/10 Bologna Empoli : 2.8 Normal', '01/10 Udinese Genoa : 1.33 Normal', '01/10 Atalanta Juventus : 3.2 Normal', '01/10 Roma Frosinone : 3.2 Normal', '28/09 Celta Vigo Deportivo Alaves : 1.33 Normal', '28/09 Granada Real Betis : 4.5 UST Degerli', '28/09 Osasuna Atletico Madrid : 2.5 UST Degerli', '29/09 Barcelona Sevilla : 3.8 Normal', '30/09 Getafe Villarreal : 2.17 Normal', '30/09 Rayo Vallecano Mallorca : 3.86 UST Degerli', '30/09 Girona Real Madrid : 3.29 Normal', '30/09 Real Sociedad Athletic Bilbao : 3.29 UST Degerli', '01/10 Almeria Granada : 4.0 Normal', '01/10 Deportivo Alaves Osasuna : 3.33 UST Degerli', '30/09 Aston Villa Brighton & Hove Albion : 4.25 Normal', '30/09 Bournemouth Arsenal : 1.2 Alt Degerli', '30/09 Everton Luton Town : 2.0 Normal', '30/09 Manchester United Crystal Palace : 2.83 Normal', '30/09 Newcastle United Burnley : 3.0 Normal', '30/09 West Ham United Sheffield United : 3.5 Normal', '30/09 Wolverhampton Manchester City : 3.8 Normal', '30/09 Tottenham Liverpool : 2.8 Normal', '01/10 Nottingham Forest Brentford : 2.25 Normal', '02/10 Fulham Chelsea : 2.0 Normal']
def get_first_5_chars(item):
return item[:5]
sorted_data = sorted(a, key=get_first_5_chars)
for item in sorted_data:
print(item)
结果如下:
01/10 Fatih Karagümrük Kasımpaşa : 1.8 Alt Degerli
01/10 Fenerbahçe Çaykur Rizespor : 3.8 Normal
01/10 Adana Demirspor Alanyaspor : 2.8 Normal
01/10 Konyaspor Beşiktaş : 2.83 Normal
01/10 Darmstadt 98 Werder Bremen : 4.5 Normal
01/10 Freiburg Augsburg : 3.5 Normal
01/10 Bologna Empoli : 2.8 Normal
01/10 Udinese Genoa : 1.33 Normal
01/10 Atalanta Juventus : 3.2 Normal
01/10 Roma Frosinone : 3.2 Normal
01/10 Almeria Granada : 4.0 Normal
01/10 Deportivo Alaves Osasuna : 3.33 UST Degerli
01/10 Nottingham Forest Brentford : 2.25 Normal
02/10 Fulham Chelsea : 2.0 Normal
28/09 Fenerbahçe Başakşehir FK : 3.0 Normal
28/09 Frosinone Fiorentina : 4.0 Normal
28/09 Monza Bologna : 1.5 Normal
28/09 Genoa Roma : 3.5 UST Degerli
28/09 Celta Vigo Deportivo Alaves : 1.33 Normal
28/09 Granada Real Betis : 4.5 UST Degerli
28/09 Osasuna Atletico Madrid : 2.5 UST Degerli
29/09 Samsunspor Gaziantep FK : 2.25 Normal
29/09 Hoffenheim Borussia Dortmund : 3.75 Normal
29/09 Barcelona Sevilla : 3.8 Normal
30/09 Sivasspor Hatayspor : 2.33 Normal
30/09 İstanbulspor Antalyaspor : 2.17 Alt Degerli
30/09 Trabzonspor Pendikspor : 2.67 Normal
30/09 Galatasaray MKE Ankaragücü : 3.8 Normal
30/09 Bochum Mönchengladbach : 4.5 Normal
30/09 Heidenheim Union Berlin : 4.75 Normal
30/09 Köln Stuttgart : 4.25 Normal
30/09 Mainz 05 Bayer Leverkusen : 3.25 Normal
30/09 Wolfsburg Eintracht Frankfurt : 2.25 Alt Degerli
30/09 RB Leipzig Bayern Münih : 4.0 Normal
30/09 Lecce Napoli : 2.33 Normal
30/09 Milan Lazio : 3.2 UST Degerli
30/09 Salernitana Inter : 2.0 Alt Degerli
30/09 Getafe Villarreal : 2.17 Normal
30/09 Rayo Vallecano Mallorca : 3.86 UST Degerli
30/09 Girona Real Madrid : 3.29 Normal
30/09 Real Sociedad Athletic Bilbao : 3.29 UST Degerli
30/09 Aston Villa Brighton & Hove Albion : 4.25 Normal
30/09 Bournemouth Arsenal : 1.2 Alt Degerli
30/09 Everton Luton Town : 2.0 Normal
30/09 Manchester United Crystal Palace : 2.83 Normal
30/09 Newcastle United Burnley : 3.0 Normal
30/09 West Ham United Sheffield United : 3.5 Normal
30/09 Wolverhampton Manchester City : 3.8 Normal
30/09 Tottenham Liverpool : 2.8 Normal
正如你所看到的,排序列表上有一个问题。例如,01/10在顶部,30/09在底部。我要一份按日期排序的清单。
非常感谢
我尝试过的是:我在ChatGPT中找到了一个代码,并在代码中使用了它,但没有工作。
def get_first_5_chars(item):
return item[:5]
sorted_data = sorted(a, key=get_first_5_chars)
for item in sorted_data:
print(item)
3条答案
按热度按时间6kkfgxo01#
另一种选择是将字符串转换为日期时间,如下所示:
qgelzfjb2#
你需要的是先按月排序,然后按天排序,剩下的按天排序。这意味着,我们需要将行拆分为以下3个组件:
polkgigr3#
你只是得到了日期部分,但是第一个项目是日,所以你必须把它们分开,先按月排序,然后按日排序。
(这里转换为
int
并不是严格必要的,因为一位数有一个前导零,所以它们也可以作为字符串进行正确的比较。