2010-04-23 45 views
4

我有一個字符串表示中的整數列表,類似於以下內容:將字符串['3','1','2']的列表轉換爲已排序整數列表[1,2,3]

L1 = ['11', '10', '13', '12', 
     '15', '14', '1', '3', 
     '2', '5', '4', '7', 
     '6', '9', '8'] 

我需要它像一個整數列表:

L2 = [11, 10, 13, 12, 15, 14, 1, 3, 2, 5, 4, 7, 6, 9, 8] 

最後我會像下面對其進行排序:

L3 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15] # by L2.sort() 

請讓我知道了什麼是從L1L3的最佳方式嗎?

+0

它是家庭作業? – 2010-04-23 00:42:11

+2

@Michael Dorgan:並非所有的基本問題都是作業。讓OP表明它是否是功課。 – 2010-04-23 00:53:40

回答

5
>>> L1 = ['11', '10', '13', '12', '15', '14', '1', '3', '2', '5', '4', '7', '6', '9', '8'] 
>>> L1 = [int(x) for x in L1] 
>>> L1 
[11, 10, 13, 12, 15, 14, 1, 3, 2, 5, 4, 7, 6, 9, 8] 
>>> L1.sort() 
>>> L1 
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15] 
>>> L3 = L1 
19

你能做到這一點在一個步驟是這樣的:

L3 = sorted(map(int, L1)) 

詳細地說,這裏的步驟:

>>> L1 = ['11', '10', '13', '12', '15', '14', '1', '3', '2', '5', '4', '7', '6', '9', '8'] 
>>> L1 
['11', '10', '13', '12', '15', '14', '1', '3', '2', '5', '4', '7', '6', '9', '8'] 
>>> map(int, L1) 
[11, 10, 13, 12, 15, 14, 1, 3, 2, 5, 4, 7, 6, 9, 8] 
>>> sorted(_) 
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15] 
>>> 
+0

我不知道你可以使用那樣的下劃線。那個解釋器是特定的嗎? +1 – 2010-04-23 01:51:09

+0

@Xavier,這只是在交互式解釋器中的一點點便利。 – 2010-04-23 02:16:39

+0

只有'_'這種方式在解釋器中起作用。我知道在腳本中「訪問」_的唯一方法是在列表理解locals()['_ [1]'] .__ self__'中返回正在構建的列表。 – 2010-04-23 02:19:22

4
L3 = sorted(int(x) for x in L1)