我是新來的python和有一個數組,其中每個元素是一個元組數組。我需要通過元組中的第一個元素對內部數組中的元組進行排序。我的陣列看起來是這樣的:Python排序2D python中的元組數組
[[(u'10:30', u'11:20'), (u'08:30', u'09:20')], [(u'14:30', u'15:50'), (u'10:00', u'11:20'), (u'10:30', u'11:20'), (u'13:00', u'14:20')], [(u'10:30', u'11:20'), (u'08:30', u'09:20')], [(u'14:30', u'15:50'), (u'10:00', u'11:20'), (u'13:00', u'14:20')], [(u'10:30', u'11:20'), (u'08:30', u'09:20')]]
我試圖做類似
for index, elm in array:
array[index] = sorted(elm, key=lambda x: x[0])
,但我得到了ValueError異常:需大於0的值來解壓。不知道如果我的語法是關閉或東西
預期的結果是
[[ (u'08:30', u'09:20'), (u'10:30', u'11:20')], [ (u'10:00', u'11:20'), (u'10:30', u'11:20'), (u'13:00', u'14:20'), (u'14:30', u'15:50')], [(u'08:30', u'09:20'),(u'10:30', u'11:20') ], [ (u'10:00', u'11:20'), (u'13:00', u'14:20'), (u'14:30', u'15:50'),] [ (u'08:30', u'09:20'), (u'10:30', u'11:20')]]
@ The6thSense - 有一個前導零,所以沒有必要。如果沒有前導零,一個簡單的'int()'調用將不足以解析這些時間字符串。用字符串格式添加前導零比較容易。 – TigerhawkT3
FWIW,當結果要替換原始列表時使用'sorted'函數不是很有效。這是因爲'sorted'將源列表複製到一個新列表中,並對該新列表進行就地排序。所以在這種情況下,直接使用'.sort()'方法直接進行就地排序會更好。 –