当前位置: 首页 > 面试题库 >

迭代对应于Python中列表的字典键值

卢知
2023-03-14
问题内容

使用Python 2.7。我有一本字典,其中以球队名称为键,对每支球队得分并允许的奔跑次数作为值列表:

NL_East = {'Phillies': [645, 469], 'Braves': [599, 548], 'Mets': [653, 672]}

我希望能够将字典输入一个函数并遍历每个团队(键)。

这是我正在使用的代码。现在,我只能逐队参加。我将如何遍历每个团队并为每个团队打印预期的win_percentage?

def Pythag(league):
    runs_scored = float(league['Phillies'][0])
    runs_allowed = float(league['Phillies'][1])
    win_percentage = round((runs_scored**2)/((runs_scored**2)+(runs_allowed**2))*1000)
    print win_percentage

谢谢你的帮助。


问题答案:

您有几种选择可以遍历字典。

如果迭代字典本身(for team in league),则将迭代字典的键。当使用for循环进行循环时,无论您是在dict(league)本身上循环还是在以下情况下,行为都是相同的league.keys()

for team in league.keys():
    runs_scored, runs_allowed = map(float, league[team])

您还可以通过迭代遍历键和值一次league.items()

for team, runs in league.items():
    runs_scored, runs_allowed = map(float, runs)

您甚至可以在迭代时执行元组拆包:

for team, (runs_scored, runs_allowed) in league.items():
    runs_scored = float(runs_scored)
    runs_allowed = float(runs_allowed)


 类似资料:
  • 问题内容: 我有以下词典列表: 我想对每个求和并在字典列表中得到以下结果: 问题答案: from collections import defaultdict 它产生: 要将其转换为词典列表: 结果:

  • 问题内容: 为什么以下旨在删除字典中多个键的表达式无效?(是字典) 用它替换的最最小的表达式是什么? 问题答案: 您不应该 在 这里完全使用列表理解。列表推导非常适合构建值列表,因此不应将其用于一般循环。对副作用使用列表理解会浪费内存,这是对一个完美的列表对象的浪费。 列表推导也是 表达式 ,因此只能包含其他表达式。是一个语句,不能在表达式内使用。 只需使用一个循环: 或使用字典理解来重建字典:

  • 问题内容: 我有一个字典列表和每个字典的key(比方说)“型”,这可以有值,等我的目标是过滤掉这些字典到同一个字典列表,但只有一个的那些某些“类型”。我想我真的很在理解问题。 因此,示例列表如下所示: 我有一个键值列表。举例来说: 预期的结果列表如下所示: 我知道我可以用一组for循环来做到这一点。我知道必须有一个更简单的方法。我发现此问题有很多不同的风格,但没有一个完全符合要求并回答了这个问题。

  • 我有一个名为的DataFrame想要迭代列表并获得的值,但我得到了以下错误(如预期的那样)。知道我该怎么取消吗?

  • 我想更改字典的纬度和经度值。 它正在抛出以下错误消息: 对于此它在targetWaypoints内打印一个完整的字典。我想打印纬度值。 提前谢谢。

  • 问题内容: 假设我们有一个Python字典,我们正在像这样迭代它: (并且仅仅是一些黑盒转换。) 换句话说,我们尝试在使用对其进行迭代的同时向其中添加/删除项目。 这个定义好吗?您能否提供一些参考来支持您的答案? (很明显,如果损坏了该如何解决,所以这不是我所追求的角度。) 问题答案: 在python文档页面(针对2.7)上明确提到了 使用而添加或删除字典条目可能会产生一种或无法遍历所有条目。 对