python - 如何返回字典列表中字符串最长的对象?(Python)
问题描述
知道如何在以下示例中返回名称最长的对象吗?
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"}
]))
这应该是预期的输出:
{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'}
推荐阅读
- python - 无法导入名称“db”(flask,sqlalchemy)
- javascript - 如何在另一个函数中将变量传递给这个结果 div
- firebase - Google Firebase 身份验证与 Lotus Notes 的集成
- reactjs - 如何从容器中获取目录到 travis-ci 工作目录?
- c# - 无法发布到构建的 API - 获取空值
- ocaml - 整体运行语句时出错,但在顶层逐个运行时工作
- java - 将 ComboPooledDataSource 与 Postgres 一起使用时,c3p0 抛出 com.mchange.v2.resourcepool.CannotAcquireResourceException
- sql - WITH 子句:仅包括每个表中的某些值
- android - 我无法播放 m3u8 格式的视频
- laravel - 在创建时验证 laravel 中的重叠日期