【问题标题】:Dictionary Comprehension Value is List字典理解值是列表
【发布时间】:2021-03-01 18:11:40
【问题描述】:

您好,我有以下字典。

players = {
    "Brazil": [
        (12, "Júlio César", "Goalkeeper", []),
        (4, "David Luiz", "Defender", []),
        (6, "Marcelo", "Defender", []),
        (13, "Dante", "Defender", []),
        (23, "Maicon", "Defender", []),
        (5, "Fernandinho", "Midfielder", []),
        (7, "Hulk", "Midfielder", []),
        (8, "Paulinho", "Midfielder", []),
        (11, "Oscar", "Midfielder", [90]),
        (16, "Ramires", "Midfielder", []),
        (17, "Luiz Gustavo", "Midfielder", []),
        (19, "Willian", "Midfielder", []),
        (9, "Fred", "Striker", []),
    ],
    "Germany": [
        (1, "Manuel Neuer", "Goalkeeper", []),
        (4, "Benedikt Höwedes", "Defender", []),
        (5, "Mats Hummels", "Defender", []),
        (16, "Philipp Lahm", "Defender", []),
        (17, "Per Mertesacker", "Defender", []),
        (20, "Jérôme Boateng", "Defender", []),
        (6, "Sami Khedira", "Midfielder", [29]),
        (7, "Bastian Schweinsteiger", "Midfielder", []),
        (8, "Mesut Özil", "Midfielder", []),
        (13, "Thomas Müller", "Midfielder", [11]),
        (14, "Julian Draxler", "Midfielder", []),
        (18, "Toni Kroos", "Midfielder", [24, 26]),
        (9, "André Schürrle", "Striker", [69, 79]),
        (11, "Miroslav Klose", "Striker", [23]),
    ],
}

是否可以在单行字典理解中创建一个包含所有巴西球员的字典,其中名称为键,第一个数字为值? 输出应该是:

{'Júlio César': 12, 'David Luiz': 4, 'Marcelo': 6, 'Dante': 13, 'Maicon': 23, 'Fernandinho': 5, 'Hulk': 7, 'Paulinho': 8, 'Oscar': 11, 'Ramires': 16, 'Luiz Gustavo': 17, 'Willian': 19, 'Fred': 9}

【问题讨论】:

  • 你能证明自己任何努力解决这个问题吗?例如,不使用推导式来解决问题?
  • “告诉我如何解决这个编码问题”是off-topic for Stack Overflow。您应该发送honest attempt at the solution,然后询问有关您的实施的具体问题。
  • 我是在两排中完成的,但我想将其作为单排来解决。所以我在这里问

标签: python dictionary dictionary-comprehension


【解决方案1】:

当然可以!

brazil = {player: number for (number, player, _, _) in players["Brazil"]}

# {'Júlio César': 12, 'David Luiz': 4, 'Marcelo': 6, 'Dante': 13, 'Maicon': 23, 'Fernandinho': 5, 'Hulk': 7, 'Paulinho': 8, 'Oscar': 11, 'Ramires': 16, 'Luiz Gustavo': 17, 'Willian': 19, 'Fred': 9}

这通过从源数据扩展元组列表中的每个元组来实现。您要使用的键和值已命名,而下划线是表示您不想使用元组的这些部分的传统方式

【讨论】:

  • 谢谢 :) 这会很有帮助。
猜你喜欢
  • 2016-08-01
  • 2021-03-05
  • 1970-01-01
  • 2021-05-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多