Преобразовать список строк ['3', '1', '2'] в список отсортированных целых чисел [1, 2, 3] - PullRequest
4 голосов
/ 23 апреля 2010

У меня есть список целых чисел в строковом представлении, подобный следующему:

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()

Пожалуйста, дайте мне знать, как лучше всего добраться от L1 до L3?

Ответы [ 3 ]

19 голосов
/ 23 апреля 2010

Вы можете сделать это за один шаг, как это:

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]
>>>
5 голосов
/ 23 апреля 2010
>>> 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
4 голосов
/ 23 апреля 2010
L3 = sorted(int(x) for x in L1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...