我真的想解決這個問題,但我很難。我有元組的嵌套列表的列表:排序列表嵌套在元組中
l1 = [('cherished', ['family', '4.0', '0.0', 'memory', '6.0', '8.0', 'gift', '0.0', '9.0']),
('lowered', ['flag', '5.0', '0.0', 'chair', '3.0', '0.0', 'volume', '7.0','3.0']),
('planted', ['plant', '7.0', '7.0', 'seed', '9.0', '28.0', 'tree', '16.0', '0.0'])]
在每個嵌套列表我有一個字符串後跟兩個浮點數,在上述'family', '4.0', '0.0'
的例子。我需要做的是每個第一浮動排序這個列表 - 字符串,浮球,浮球 - 序列,這樣我就碰到這樣的:
l2 = [('cherished', ['memory', '6.0', '8.0', 'family', '4.0', '0.0', 'gift', '0.0', '9.0']),
('lowered', ['volume', '7.0', '3.0', 'flag', '5.0', '0.0', 'chair', '3.0','0.0']),
('planted', ['tree', '16.0', '0.0', 'seed', '9.0', '28.0', 'plant', '7.0', '7.0'])]
我試着拉拉鍊的列表,並將它們分類整理,使用:
l2 = []
for k, v in l1:
new_list = sorted(zip(v[::3], v[1::2], v[1::3]), key=lambda x: (x[1]), reverse=True)
flattened = [value for pair in new_list for value in pair]
new_tuple = (k, flattened)
l2.append(new_tuple)
但結果是一團糟,爲planted
,例如,我得到這個:
('planted', ['seed', 'seed', '9.0', 'plant', '7.0', '7.0', 'tree', '28.0', '16.0']),
我試圖diffente事修改,但不覺得得到任何接近。有關如何糾正該代碼以執行我想要的操作或使用其他方法來完成此操作的任何提示?我真的很感激!
什麼樣的結果,你需要 - '[禮品,0,9,家庭,4,0,內存,6,8 ]'? –
@FerdinandBeyer對不起,格式化時刪除了輸出。更正它。謝謝 – user2962024