簡體   English   中英

如何使用特定列按升序對列表進行排序,而不使用 function 中的構建? (Python)

[英]How do I sort a list in ascending order using a specific column, without using a build in function? (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...]]

我想按他們的 Sanctuary Indentifaction 升序對列表進行排序,即:

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

我不能在庫中使用任何構建,任何人都可以建議我如何 go 關於這個?

您可以使用sorted內置 function 對嵌套列表進行排序,然后傳入第一列作為要排序的鍵。 下面是示例。

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']]

Alternatively, you can use pandas.read_csv to load your csv into DataFrame object, then use sort_values function:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM