키의 존재 여부에 따라 사전 목록을 정렬하려고합니다. 내가 키 [key2, key3, key1]의 목록을 가지고 있다고 가정 해 봅시다. key2가있는 사전이 먼저오고, key3이 두 번째로오고, 마지막으로 key1이 오도록해야합니다. 키 기반 사전 목록 정렬
나는이 대답 ( Sort python list of dictionaries by key if key exists)를 보았다하지만 '키'의 값을 기반으로하지 않는 경우에만 하나의 키정렬을 의미합니다. 그것은 키의 존재 여부와 미리 정의 된 키 목록에 달려 있습니다. 목록에서 주어진 사전 정렬 목록에서 키 하나 이상 포함되어있는 경우이
def sort_key(dict_item, sort_list):
key_idx = [sort_list.index(key) for key in dict_item.iterkeys() if key in sort_list]
if not key_idx:
return len(sort_list)
return min(key_idx)
dict_list.sort(key=lambda x: sort_key(x, sort_list))
같은 대해서는, 가장 낮은 인덱스를 가지는 하나를 사용하는 방법
당신이 시도한 코드를 알려주십시오. – bhansa
@ Aurora0001 - 확실히 그 질문에 속지는 않습니다. 그 질문은 딕트를 정렬하는 것에 대해 묻고 있습니다.이 질문은 딕트 목록을 정렬하는 것에 관한 것입니다 ... – mgilson
죄송 합니다만, 질문을 완전히 오독했습니다. – Aurora0001