如何在不使用内置函数的情况下,使用特定列按升序对列表进行排序?(Python)

2024-09-30 12:18:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经将一个CSV文件导入到python中的一个列表中,该列表包含具有以下列的动物数据:

Sanctuary Identification,Type,Breed,Vaccinated,Neutered

P23533,Cat,Persian,Yes,Yes

P43533,Dog,Poodle,Yes,No

P18754,Dog...

数据以以下格式显示:

[[P23533,Cat,Persian,Yes,Yes],[P43533,Dog,Poodle,Yes,No],[P18754,Dog...]]

我想按照他们的圣殿标识操作的升序对列表进行排序,即:

P1111, Cat, ..
P2222 Dog, ..
P3333.. etc

我不能使用任何内置库,有人能建议我怎么做吗?你知道吗


Tags: 文件csv数据no列表catyes动物
1条回答
网友
1楼 · 发布于 2024-09-30 12:18:28

可以使用sorted内置函数对嵌套列表进行排序,然后将第一列作为要排序的键传入。下面是一个例子。你知道吗

In [1]: my_list = [["P23533","Cat","Persian","Yes","Yes"],["P43533","Dog","Poodle","Yes","No"], ["P1111","Asd","Test","
   ...: Yes","Yes"]]

In [2]: sorted(my_list, key=lambda x: x[0])
Out[2]:
[['P1111', 'Asd', 'Test', 'Yes', 'Yes'],
 ['P23533', 'Cat', 'Persian', 'Yes', 'Yes'],
 ['P43533', 'Dog', 'Poodle', 'Yes', 'No']]

或者,可以使用pandas.read_csv将csv加载到DataFrame对象中,然后使用sort_values函数:

In [10]: df.sort_values(["SanctuaryID"]).reset_index(drop=True)
Out[10]:
  SanctuaryID Animal     Type Col4 Col5
0       P1111    Asd     Test  Yes  Yes
1      P23533    Cat  Persian  Yes  Yes
2      P43533    Dog   Poodle  Yes   No

相关问题 更多 >

    热门问题