Сортировка числовых строковых значений списка по двум столбцам Python - PullRequest
0 голосов
/ 09 июля 2020

У меня есть список, содержащий два столбца с именами TimeCount и FRAME. Я хочу отсортировать два столбца на основе сначала TimeCount, а затем FRAME.

Я использовал функцию sort () для сортировки списка, и она работает правильно, за исключением того, что она фиксирует 10 как 1, потому что столбец содержит числовые значения String.

# Find common parts
intersection = list(set(csv_1) & set(csv_2) & set(csv_3))

# Sort the list
intersection.sort()

Как видно из строк с 11 по 13, второй столбец содержит отсортированные значения 0, 10, 2. Я пытался использовать sort (key = int), но первый столбец мешает этому из-за символа ':'. Я хочу правильно отсортировать второй столбец. Заранее благодарим за помощь.

1 Ответ

0 голосов
/ 09 июля 2020

Вы можете попробовать что-то вроде этого:

data = [('11:14:02', '7'), ('11:14:02', '6'), ('11:14:06', '0'), ('11:14:06', '10'), ('11:14:06', '2')]
sorted(data, key=lambda x: (x[0], int(x[1])))

Вывод:

[('11:14:02', '6'),
 ('11:14:02', '7'),
 ('11:14:06', '0'),
 ('11:14:06', '2'),
 ('11:14:06', '10')]

Но учтите, что в следующий раз, пожалуйста, опубликуйте минимальный воспроизводимый пример , не изображение

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...