簡體   English   中英

Python:如何用整數和字母對數組排序?

[英]Python: how to sort an array with integers and letters?

當我有整數和字母的list時,我想按某種順序對這些元素進行排序。 例如,

ex_array = [1, 3, 2', 2, 1', 3', 3]

應該排序到

sorted(ex_array) = [1', 1, 2', 2, 3', 3, 3]

在這種情況下,字母順序由

1' < 1 < 2' < 2 < 3' < 3.

僅包含整數時,我可以編寫代碼。 但是我不知道如何比較帶底漆和未底漆的符號。

你能告訴我在Python中做什么嗎?

按每個元素的整數值以及該元素是否為整數排序:

>>> a = [1, 3, '2', 2, '1', '3', 3, '10', 10, 'potato', "1'", lambda: None, '-3', -3, -4]
>>> sorted(a, key=lambda x: (int(''.join(v for i,v in enumerate(str(x)) if v.isdigit() or (i==0 and v=='-')) or 0), isinstance(x, int)))
[-4, '-3', -3, 'potato', '1', "1'", 1, '2', 2, '3', 3, 3, '10', 10, <function <lambda> at 0x000000DAD51DB9D8>]

如果兩個元素具有相同的整數值,則字符串將放置在整數之前。

暫無
暫無

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

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