[英]How can I return an object with the longest string in a list of dictionaries? (python)
知道如何在以下示例中返回具有最長名稱的 object 嗎?
def instructorWithLongestName(instructors):
instructors = [
{'name': "Samuel", 'course': "iOS"},
{'name': "Jeremiah", 'course': "Data"},
{'name': "Ophilia", 'course': "Web"},
{'name': "Donald", 'course': "Web"}
{'name': "Matthew", 'course': "Data"},
{'name': "David", 'course': "iOS"},
{'name': "Domascus", 'course': "Web"}
]
max_len = -1
for name in instructors:
if len(name) > max_len:
max_len = len(name)
res = name
print(instructorWithLongestName([
{name: "Samuel", course: "iOS"},
{name: "Jeremiah", course: "Data"},
{name: "Ophilia", course: "Web"},
{name: "Donald", course: "Web"}
]))
print(instructorWithLongestName([
{name: "Matthew", course: "Data"},
{name: "David", course: "iOS"},
{name: "Domascus", course: "Web"}
]))
這應該是預期的 output:
{name: "Jeremiah", course: "Data"}
{name: "Domascus", course: "Web"}
我的講師列表中出現了 SyntaxError,但希望這能解決問題。 顯然不是。 任何幫助將不勝感激 - 謝謝。
def instructorWithLongestname(instructors):
return max(instructors, key=lambda d:len(d['name']))
print(instructorWithLongestname([
{'name': "Samuel", 'course': "iOS"},
{'name': "Jeremiah", 'course': "Data"},
{'name': "Ophilia", 'course': "Web"},
{'name': "Donald", 'course': "Web"}
]))
print(instructorWithLongestname([
{'name': "Matthew", 'course': "Data"},
{'name': "David", 'course': "iOS"},
{'name': "Domascus", 'course': "Web"}
]))
印刷
{'name': 'Jeremiah', 'course': 'Data'}
{'name': 'Domascus', 'course': 'Web'}
instructors = [
{'name': "Samuel", 'course': "iOS"},
{'name': "Jeremiah", 'course': "Data"},
{'name': "Ophilia", 'course': "Web"},
{'name': "Donald", 'course': "Web"},
{'name': "Matthew", 'course': "Data"},
{'name': "David", 'course': "iOS"},
{'name': "Domascus", 'course': "Web"}
]
如果給你變量“instructors”,你會得到一個名字最長的字典
def f(items):
return max(items, key=lambda item: len(item.get('name')))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.