我試圖過濾字典裏面的一些信息,使用每個鍵的值列表,並且如果有多個值,我們選擇更好的是,這種情況下,如果[1] [3]的位置較高,則相應地排序。在排序後創建一個字典列表中的值和值[0]
for key, value in dic.items():
if len(value) < 1:
newList.append(TranslatorToTask('NOTAssigned', key))
if len(value) == 1:
newList.append(TranslatorToTask(value[0], key))
if len(value) > 1:
for v in dic.values():
v.sort(key=lambda t: float(t[1][3]), reverse = True)
newList.append(TranslatorToTask(value[0], key))
不過,當我打印newList它出來是這樣的:
除了else語句的所有工作,除了沒有返回第一位置轉換器,還運行3次以上。
信息有關預期的結果:與使用的功能:
def TranslatorToTask(translator, task):
newList = [translator, task]
return newList
雖然IM問,是否有可能更多的值進行排序的情況相比的相等?
感謝您的幫助!
再次,非常感謝答覆,但有一個問題,但我不能使用函數如max,min,zip等,唯一允許使用的內置函數被排序和排序..:/還有,如果在排序函數中有任何ideia,如果它們相等,我可以使用多個值? – stasisOo
另外,append不允許我使用多個值,你會建議如何使用它?我可以只取得第一個值(人的名字)而不是最後一部分的所有信息? – stasisOo
在這種情況下,你的關鍵函數需要用你想用來排序的元素來構建一個元組,例如'key = lambda t:(val1,val1,val3,...)',每個valn都是你的東西從't'中提取當然是... – Copperfield