2015-12-06 64 views
1

如何對列表進行排序?如何在python列表中排序的列表中獲得正確的結果

我的結果是:

['10','11','12','7','8','9'],['1','2','3','4','5','6']] 

這裏是我的代碼

lst= [['7','10','8','9','11','12'],['3','1','2','4','6','5']] 

for i in lst: 
    i.sort() 
    print(i) 
+2

什麼是你想要的輸出? –

+0

只是谷歌如何在Python中排序列表。 ..你會發現很多關於該主題的東西 –

+0

@BrianCain問一個完全合理的問題:你得到的輸出有什麼問題?對我來說,就像你對字符串進行排序一樣,你從排序字符串中得到了預期的輸出。沒有什麼顯而易見的。你必須告訴我們問題是什麼。 – barny

回答

1

這些字符串對象,字符串:

'10' < '7' because `1 < 7` 

我想你想:

>>> [sorted(map(int, i)) for i in lst] 
[[1, 2, 3, 4, 5, 6], [7, 8, 9, 10, 11, 12]] 
>>> 

只需在排序前將它們轉換爲int對象。


如果你需要讓他們在字符串對象,隱蔽回或設置一個關鍵點:

>>> [list(map(str, i)) for i in [sorted(map(int, i)) for i in lst]] 
[['7', '8', '9', '10', '11', '12'], ['1', '2', '3', '4', '5', '6']] 

>>> [sorted(i, key=lambda x: int(x)) for i in lst] 
[['7', '8', '9', '10', '11', '12'], ['1', '2', '3', '4', '5', '6']] 
+0

這給我:[[7,8,9,10,11,12],[1,2,3,4,5,6]]不是[1,2,3,4,5,6], [7,8,9,10,11,12]謝謝 –

2

使用sorted(list, key=int)

lst= [['7','10','8','9','11','12'],['3','1','2','4','6','5']] 

for i in lst: 
    i = sorted(i, key=int) 
    print(i) 
+0

好吧,不知道之前:) –