簡體   English   中英

如何返回字典列表中字符串最長的 object? (Python)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM