저는이 문제를 해결하려고 애 쓰고 있지만 힘든 시간을 보내고 있습니다. I는 두 개의 플로트 수에 따라 문자열을 각리스트에서 중첩튜플에 중첩 된 목록 정렬
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'
위 예 : I 중첩리스트와 튜플들의 목록이있다.
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'])]
나는 목록을 압축하는 시도하고 그것을 정렬 : 내가 좋아하는 뭔가를 할 수 있도록, 순서 - 문자열, 부동, 플로트 - 내가 뭘해야 각각의 첫 번째 플로트하여이 목록을 정렬하는 것입니다
('planted', ['seed', 'seed', '9.0', 'plant', '7.0', '7.0', 'tree', '28.0', '16.0']),
내가 그것을 개정 diffente 일을 시도했지만 어떤 가까워지고 느끼지 않는다 : 예를 들어, 나는이 얻을,
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
를 들어, 엉망 : 사용. 그 코드를 수정하여 내가 원하는 것을 할 수있는 방법이나 그것을 성취 할 수있는 다른 방법에 대한 조언? 정말 고마워!
어떤 종류의 결과는 당신이 필요로 할 -'[선물, 0, 9, 가족, 4, 0, 메모리, 6, 8 ]'? –
@FerdinandBeyer 형식을 지정할 때 출력을 삭제했습니다. 그것을 정정했다. 감사합니다 – user2962024